1、解释为什么如下代码会打印 6 个 6
let i = 0
for(i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
setTimeout是指过一会儿再执行,也就是循环执行完再打印,当循环6次后,i变成了6,所以会打印出六个6
2、那么怎么打印出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一起使用时会加东西,每次循环都会把i复制一份留在空间里,所以会得到0、1、2、3、4、5
3 除了使用 for let 配合,还有什么其他方法可以打印出 0、1、2、3、4、5呢?
可以利用 const 关键字实现
let i
for(i = 0; i<6; i++){
const x = i
setTimeout(()=>{
console.log(x)
})
}