一缀拭、為什么如下代碼會打印出六個6
let i = 0
for(i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
- setTimeout是指過一會兒再執(zhí)行,也就是循環(huán)執(zhí)行完再打印填帽,當(dāng)循環(huán)6次后蛛淋,i變成了6,所以會打印出六個6
那么怎么打印出0篡腌、1褐荷、2、3嘹悼、4叛甫、5呢层宫?如下,只需要將let i = 0放入for中即可
for(let i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
- 因為JS在for和let一起使用時會加?xùn)|西其监,每次循環(huán)都會把i復(fù)制一份留在空間里萌腿,所以會得到0、1抖苦、2毁菱、3、4锌历、5