let i = 0
for(i=0;i<6;i++){
setTimeout(()=>{
console.log(i)
},0)
}
上述代码为什么会打印出6个6,而不是0 1 2 3 4 5
//定时器不会立即打印i,会在一段时间后尽快打印i
//先把代码执行完毕,然后定时器再开始打印i
//相当于 等一会打印i的值 打印6遍
//当循环执行完毕时 i=6,之后再打印,所以是6个6为什么不是5个5
//当i=5时 i++为6
//下一次i=6不满足条件,退出循环如何使其打印出0 1 2 3 4 5
for(let i=0;i<6;i++){
setTimeout(()=>{
console.log(i)
},0)
}
//JS在for和let一起用的时候,每次循环会多创建一个i
//相当于把i复制6次