间隔和超时
如果未指定延迟,则默认为 0 毫秒。但是,实际延迟会比这更长 ; 例如, HTML5 规范指定最小延迟为 4 毫秒。
即使在延迟为零的情况下调用 setTimeout
时,setTimeout
调用的函数也将异步执行。
请注意,即使你已经进行了操作并转移到下一个代码语句,许多操作(如 DOM 操作)也不一定完成,因此你不应该假设它们将同步运行。
使用 setTimeout(someFunc, 0)
将 someFunc
函数的执行排入当前 JavaScript 引擎调用堆栈的末尾,因此在完成这些操作后将调用该函数。
这是可能的,以通过含有代替功能(setTimeout(
function(){some..code}, 1000)
)的 JavaScript 代码(setTimeout("some..code", 1000)
)的字符串。如果代码放在一个字符串中,稍后将使用 eval()
解析它。出于性能,清晰度和安全原因,不建议使用字符串式超时,但你可能会看到使用此样式的旧代码。自 Netscape Navigator 4.0 和 Internet Explorer 5.0 以来,支持传递函数。