JavaScript定时器

详解

方法 描述
setInterval 以指定周期,调用一个函数,或者执行一段代码
clearInterval 取消调用setInterval
setTimeout 在指定延迟后,调用一个函数,或者执行一段代码
clearTimeout 取消调用setTimeout()
  • 这两个调用方法会在指定时间后或指定周期将当前任务添加到JS的任务队列,然后队列里的任务会按顺序执行

区别

  • setTimeout只执行一次,setInterval会重复执行,直到页面卸载,所以推荐使用setTimeout替换setInterval

用法

  • setInterval
let t = setInterval(function(){
    console.log("log")
},1000)
//会一直输出"log"
  • clearInterval
clearInterval(t);
  • setTimeout
let t = setTimeout(function(){
    console.log("log")
},1000)
//只输出一次"log"
  • clearTimeout
clearTimeout(t);

扩展

(function () {
    setTimeout(function () {
        console.log(2);
    }, 0);
    console.log(1);
})()            
// 1
// 2          

setTimeoutsetInterval都存在一个最小延迟的问题,虽然给出的延迟时间0,但是浏览器执行的是自己的最小值,所以会先输出1,再输出2

参考文章推荐:
你真的了解setTimeout和setInterval吗?

你可能感兴趣的:(JavaScript定时器)