我有一个问题:
如果我使用以下代码,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()
变化太快以至于在比较发生之前就发生了变化吗?
最佳答案
不能保证间隔每1毫秒运行一次,这取决于循环中发生的其他情况,JS在运行它时只会尝试运行它所需的次数(我的意思是,如果没有时间运行这个函数一秒钟,JS会在这段时间之后尝试运行它1000次)。另外,我认为强制的最小间隔超过一毫秒。
关于Javascript setInterval if 语句无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21754306/