我有这样的代码:
setTimeout(foo, 600);
我一直以为 foo
没有采取任何论据,例如:
function foo() { /* bars */ }
但是,执行以下操作:
function foo(a) { alert(a); /* bars */ }
弹出一个显示-7的警报。这个数字代表什么?
我有这样的代码:
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处理,因此在关闭警报之前计时器不会执行。上述测试的行为在其他浏览器中可能会有所不同
从我所知道的......在计划时间和实际运行时间之间的差异的论点是毫秒。有趣的是,似乎某些浏览器甚至像整秒的一小部分......
<script>
var a = setInterval(foo, 125);
console.log(a);
function foo(b) {
console.log(b);
}
</script>
将输出一堆零,同样适用于250,500,1000 ......同时
<script>
var a = setInterval(foo, 127);
console.log(a);
function foo(b) {
console.log(b);
}
</script>
将输出
-2
12
-6
8
-10
4
2
0
-2
-4
9
-8
5
3
1