Interval 间隔
JavaScript 提供定时执行代码的功能,叫做定时器。它们向任务队列添加定时任务。
setInterval() setTimeout()
setTimeout()
写法:
setTimeout( fun || code ,time)
举个栗子:
setTimeout(“console.log(1)”,1000)
setTimeout(function(){console.log(1)},1000)
setTimeout() 非匿名函数可以直接在setTimeout中传入参数的名字
function fn(){
console.log(1)
}
setTimeout(fn,100)
setInterval()
用法与setTimeout完全一致,区别仅仅在于setInterval指定某个任务每隔一段时间就执行一次,也就是无限次的定时执行。
clearTimeout() clearInterval()
var timer1 = setTimeout(fn, 1000);
var timer2 = setInterval(fn, 1000);
clearTimeout(timer1);
clearInterval(timer2);
运行机制
setTimeout(function () {
console.log(1);
}, 0);
console.log(2);
运行机制
setInterval(function(){
console.log(new Date());
},500)
运行机制
js读取到setTimeout和setInterval会将这两种函数放到任务队列。直到所有的同步任务执行完毕之后才会执行任务队列里的任务。所以,这两种方法的执行时间我们无法保证。
运行机制
setTimeout(function timer(){
console.log(new Date());
setTimeout(timer,500)
},500)