为什么下面的setTimeout直接输出?

以下内容马上打印我的消息

setTimeout(console.log('delayed hello world'), 10000); 

这有点违反直觉。 而且由于我的信息直接打印10秒结束时会发生什么?

你需要使用匿名function:

 setTimeout(function() { console.log('delayed hello world') }, 10000); 

详细了解如何将parameter passing给MDN的 setTimeout函数

你正在运行console.log(因为你有()它的末尾),并将其返回值传递给setTimeout而不是传递一个函数。

 var myFunction = function () { console.log('delayed hello world'); } setTimeout(myFunction, 10000);