计时器
什么是计时器?
当经过指定时间后触发一段代码的函数就是一个计时器
setTimeout计时器
let timerId = setTimeout(() => {
console.log('hello setTimeout')
}, 3000)
通过setTimeout可以声明一个计时器,有两个参数
第一个参数:计时器计时结束后触发的函数
第二个参数:计时时长,单位:毫秒
有返回值: 计时器id
clearTimeout(timerId)
clearTimeout 清空计时器
参数是 计时器id
清空后计时器将取消掉
setInterval 循环计时函数
setInterval 函数,每次经过指定时间,触发一次指定的函数
参数和返回值 与 setTimeout 相同
let count = 0
let timerId2 = setInterval(() => {
count++
console.log(count);
}, 1000)
清空循环计时器
clearInterval(timerId2)
关于死循环
setTimeout 死循环
let count = 0
function countTime() {
setTimeout(() => {
count++
// console.log(count);
// 递归调用自身 形成死循环
countTime()
// 添加条件来跳出循环 则不会导致内存溢出
// count < 10 && countTime()
})
}
setInterval 死循环
let count=0;
setInterval(() => {
count++
console.log(count);
})
关于异常
setTimeout 计时器内出现异常 将停止递归
function countTime() {
setTimeout(() => {
if(count === 5) console.log(abc.obj());
count++
console.log(count);
countTime()
}, 1000)
}
countTime()
setInterval 中出现异常 程序继续执行
setInterval(() => {
if (count === 5) console.log(abc.obj());
count++
console.log(count);
}, 1000)