我有一个问题:
如果我使用以下代码,则永远不会执行if
语句:
var timer = setInterval(function(){
// the date of new date is ofcourse a date in the future
if (Date.now() == Date.parse(new Date(2014, 1, 13, 13, 4, 0, 0))){
console.log('refresh done');
clearInterval(timer);
}
}, 1);
但如果我将==
更改为>=
,它将正确执行。这是因为Date.now()
变化如此之快以至于在比较确实发生之前它会发生变化吗?
答案 0 :(得分:3)
不能保证间隔每1ms运行一次,这取决于循环中发生了什么,JS只会尝试在运行它时运行所需的次数(我的意思是如果没有时间到运行此函数一秒钟JS将尝试在此时间后运行1000次)。此外,我认为有一个最小的间隔将被强制,它超过一毫秒。