let i = 0
for(i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
// 打印 6 个 6
分析:
- 上面 for 循环内, i 为全局变量。
- 每次循环,都等一会打印 i
- 循环了 6 次,循环结束后,i 的值为 6
- for 循环结束后,才执行等一会打印 i 的任务
- 所以最后会 打印 6 个 6
打印 0、1、2、3、4、5 的方法:
for(let i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
另一种打印 0、1、2、3、4、5 的方法:
for(var i = 0; i < 6; i++){
(function(j){
setTimeout(function(){
console.log(j)
},0)
})(i)
}