我有这样的代码:
setTimeout(foo, 600);
我一直认为foo
没有任何争论,例如:
function foo() { /* bars */ }
但是,执行以下操作:
function foo(a) { alert(a); /* bars */ }
弹出一个显示-7的警报.这个数字代表什么?
它是从计划运行它到实际运行时的时间差(以毫秒为单位).
alert(setTimeout(function(a) { alert(a) }, 2000));
如果您及时清除第一个警报,您将看到下一个警报在-10到10之间.如果您等待几秒钟,您将看到大约等于2000的时间.
setInterval也可以看到同样的事情.在Firebug中运行以下命令:
setInterval(function(a) { alert(a); }, 2000);
尝试快速关闭警报,它将再次在0左右.保持开放 - 它会给你一个很大的价值.
注意这是在Firefox Mac上,保持警报打开将停止Javascript处理,因此在关闭警报之前计时器不会执行.上述测试的行为在其他浏览器中可能会有所不同