评论

关于setTimeout()函数使用时变量值混乱的解释

使用setTimeout函数延时,尽量避免使用公共变量。函数并不是顺序执行语句的。

setTimeout()函数在使用时,系统并不会停留在这个函数这里等待延时,而是先执行后边的语句,等时间到了再执行setTimeout指定的函数或者语句。

这在通过公共变量交换数据时,要特别注意。代码如下:

let i=1

console.log("初始i值:" +i )

            setTimeout(() => {

                i=i+1

                console.log("延时内i,这一句其实最后执行了:" + i)

            }, 500)

console.log("延时后i应该为2,但是这一句先执行了:" +i )

以上语句中,若i为公共变量,别的函数也用到了,可能会导致数值错乱,要特别注意。


最后一次编辑于  2022-12-12  
点赞 0
收藏
评论

1 个评论

登录 后发表内容