正在回答
1回答
因为JS是单线程的,代码一行行执行,如果遇到一行定时器的代码,那就会影响后面的代码执行,会卡在那里等定时器的执行完再执行下面的代码。为了解决这个问题就有了同步任务和异步任务,比如点击事件,定时器这些是异步任务。
JS会先把同步任务先执行完,再去执行异步任务,for循环就是同步任务,所以一开始就执行完了,循环完等你触发点击事件之后,才会把它从异步任务送到执行栈中执行。
所以需要闭包把每次循环的i都存起来
因为JS是单线程的,代码一行行执行,如果遇到一行定时器的代码,那就会影响后面的代码执行,会卡在那里等定时器的执行完再执行下面的代码。为了解决这个问题就有了同步任务和异步任务,比如点击事件,定时器这些是异步任务。
JS会先把同步任务先执行完,再去执行异步任务,for循环就是同步任务,所以一开始就执行完了,循环完等你触发点击事件之后,才会把它从异步任务送到执行栈中执行。
所以需要闭包把每次循环的i都存起来
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星