详解
方法 | 描述 |
---|---|
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
setTimeout
,setInterval
都存在一个最小延迟的问题,虽然给出的延迟时间0,但是浏览器执行的是自己的最小值,所以会先输出1,再输出2
参考文章推荐:
你真的了解setTimeout和setInterval吗?