根据W3Schools,超时是必需参数.但是可以在没有超时参数的情况下调用它.
function eventHandler(e) {
var t = setTimeout(function () {
//clearTimeout(t);
alert('Called');
});
}
Run Code Online (Sandbox Code Playgroud)
Jam*_*mes 10
如果您不想设置超时,则只需传递 0
setTimeout(function() {
...
}, 0);
Run Code Online (Sandbox Code Playgroud)
或者,您可以省略延迟参数0,但是,为了获得稳健性(以及一般可读性),最好在其中传递一些内容.
注意 - 这并不能保证您的代码会立即运行.只要UI线程可用于处理它,它就会将您的任务排队.
你为什么不亲自检查一下?文档总是受欢迎的,但是你无法击败现实世界的例子:
var startTime = Date.now();
setTimeout(function () {
var endTime = Date.now();
alert("timeOut was: " + (endTime - startTime) + "ms");
});
Run Code Online (Sandbox Code Playgroud)
JSFiddle:http://jsfiddle.net/losnir/PbJBA/
通过播放不同的超时值来实现.
不传递超时参数几乎与传递一个0.但是,正如您所看到的,超时永远不会0,因为您的回调函数将被放入队列中,并尽快执行(给定您请求的超时值).
它平均大约需要5毫秒,如果你的UI线程正在执行一些密集的任务,或者你的CPU很忙 - 它可能会高达几百毫秒,非常糟糕!