setTimeout返回值不可能是0
clearTimeout 的行为
clearTimeout 是一个全局函数,它的参数是一个定时器 ID。
如果传入的 ID 是 null、undefined 或者无效的定时器 ID
clearTimeout 不会抛出错误,而是静默忽略。
总结:clearTimeout(无效id || 0 || null || undefined) 不会报错,静默忽略。
开发时清空计时器的2种方法
clearSetTimeoutId :null
openHandler(){
this.clearSetTimeoutId = setTimeout(() => {
console.log('定时器执行了')
}, 2000);
}
beforeDestroy() {
// 直接清空是没有问题的。
clearTimeout(this.clearSetTimeoutId)
// 当然你也可以这样做[推荐] 更加的规范
this.clearSetTimeoutId !== null && clearTimeout(this.clearSetTimeoutId)
},
setTimeout 的返回值有可能是0吗?
setTimeout 返回的是一个正整数,表示定时器(setTimeout)的唯一标识符(ID)。
这个 ID 是从 1 开始递增的数字,
因此 this.clearSetTimeoutId 不可能是 0。
即使手动将 this.clearSetTimeoutId 设置为 0,这也不是合法的定时器 ID。
调用 clearTimeout(0) ,也不会有任何效果(但也不会报错)。
setTimeout 当作动态执行
etTimeout(a, number) 如果第一个参数接受的是字符串,会把字符串当做代码来执行;异步的。
setTimeout(a, number)执行代码时,读取变量是全局作用域;
使用 setTimeout 将字符串当做代码来执行
let a =10
function zhiXing(strCode){
let a = 4
setTimeout(strCode,0)
}
zhiXing("console.log('hello',a)")
// 输出的是10;因为读取变量时,是全局作用域
遇见问题,这是你成长的机会,如果你能够解决,这就是收获。
作者:晚来南风晚相识
出处:https://www.cnblogs.com/IwishIcould/
本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
如果文中有什么错误,欢迎指出。以免更多的人被误导。
出处:https://www.cnblogs.com/IwishIcould/
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,或者关注博主,在此感谢!
万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!
支付宝
微信
如果文中有什么错误,欢迎指出。以免更多的人被误导。

浙公网安备 33010602011771号