如下代码会打印出什么呢
let i = 0
for(i=0;i<6;i++){
setTimeout(()=>{
console.log(i)
},0)
}
这段代码的意思就是有一个for循环,每次循环都会创建一个setTimeout函数,但不是马上执行,而是循环完六次后执行,所以循环完后i=6,然后执行setTimeout中的callback函数打印出6个6。
让上面代码打印 0、1、2、3、4、5 的方法
for(let i=0;i<6;i++){
setTimeout(()=>{
console.log(i)
},0)
}
因为 JS 在 for和let一起用时会加东西,每次循环都会多创建一个 i ...
其他实现方法---即时函数
let i=0
for(i=0;i<6;i++){
! function(j){
setTimeout(()=>{
console.log(j)
},0)
}(i)
}