setTimeout()和setInterval()

159 阅读1分钟

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的继续执行