6个6

2020-05-11  本文已影响0人  浪味仙儿啊

以下代码会打印出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秒之后执行。

上一篇 下一篇

猜你喜欢

热点阅读