以下代码会打印出6个6
let i
for(i=0; i<6; i++){
setTimeout(()=>{console.log(i)},1000)
}
如何打印出0、1、2、3、4、5
1、
for(i=0; i<6; i++){
let j = i
setTimeout(()=>{console.log(j)},1000)
}
2、
for(let i=0; i<6; i++){
setTimeout(()=>{console.log(i)},1000)
}
是ES6 let语法糖
3、
for(var i=0; i<6; i++){
!function(j){
setTimeout(()=>console.log(j),1000)
}(i)
}
4、
for(var i=0; i<6; i++){
!function(i){//这是里面的i
setTimeout(()=>console.log(i),1000)//这是里面的i
}(i)//这是外面的i
}
setTimeout的意思
setTimeout(fn(),1000)
f2()
1000ms后尽快执行fn(),不代表马上执行,如f2()中写了10000行代码,需要花10秒执行完,那么,fn()会在10秒之后执行。
网友评论