JS有两种定时器分别是setTimeout()(炸弹定时器)和setInterval()(闹钟定时器)。
setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
两者的区别:
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭;(循环的)。
setTimeout() 方法只会调用一次;(一次性的)。
通常用法:
setTimeout()方法接收两个参数,第一个参数可以是函数或计算表达式, 第二个参数表示等待多长时间的毫秒数将当前任务添加到队列中(也就是间隔的毫秒数)。
setInterval() 第一个参数是函数(function),第二个参数表示等待多长时间的毫秒数将当前任务添加到队列中(也就是间隔的毫秒数)。
举例:
setInterval(()=>{
console.log('setInterval')
},100)
每100毫秒打印一次且不结束(循环且不停止)
setTimeout(()=>{
console.log('setTimeout')
},100)
100毫秒到了之后打印一次就结束( 只执行一次)
清除定时器的方法:
如何阻止定时器的执行或继续执行:
clearTimeout()
clearInterval()
举例:
let int = setInterval(()=>{
console.log('setInterval')
},1000)
setTimeout(()=>{
console.log('setTimeout')
clearInterval(int)
},5000)
当打印了5次'setInterval'后,也就是5000毫秒后调用setTimeout中的clearInterval()方法,就阻止了setInterval的继续执行