setTimeout没有延迟和立即执行函数一样吗?

Ais*_*war 50 javascript timing delay settimeout

我正在查看Web应用程序中的一些现有代码.我看到了这个:

window.setTimeout(function () { ... })

这是否只是立即执行功能内容?

小智 85

它不一定会立即运行,也不会将延迟显式设置为0.原因是setTimeout从执行队列中删除了该函数,并且只有在JavaScript完成当前执行队列后才会调用它.

console.log(1);
setTimeout(function() {console.log(2)});
console.log(3);
console.log(4);
console.log(5);
//console logs 1,3,4,5,2
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅http://javascriptweblog.wordpress.com/2010/06/28/understanding-javascript-timers/


Dan*_*uis 21

setTimeout使用的最小延迟(根据HTML5为4ms,Firefox 3.6使用10ms).在Mozilla开发人员中心文档页面上有关于它的讨论.

  • 实际上,请参阅其他答案以获得正确的解释! (2认同)