结果为什么是6个6
let i = 0
for(i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
尽快,而不是立即
当浏览器解析这段代码时,当解析到for循环时,因为JS的定时器并不是立即响应,而是会把目前的事情处理完后一次响应,所以结果不是0,1,2,3,4,5
而是会输出为6个6
那怎么输出0,1,2,3,4,5呢?
let和for一起用的时候,JS会加东西
for(let i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
}, 0)
}
每次循环的时候会多创建一个i
还可以用最简单的方式
let i = 0
for(i = 0; i<6; i++){
console.log(i)
}