setInterval的定时器
var i=0;
setInterval(function () {
i++;
console.log(i);
},1000)
setTimeout模拟setInterval实现定时器
var i=0;
function time() {
setTimeout(function () {
i++;
console.log(i);
dinshi();
},1000)
}
time();
两者有什么区别?
setTimeout产生的任务会直接push到任务队列中,而setInterval在每次把任务push到任务队列前,都会进行一下判断,看上次的任务是否在队列中。使用setTimeout可以规避掉setInterval带来的缺点,使得在前一个定时器完成之前不会添加新的定时器,保证了定时器的间隔