JS函数的执行时机

2022-08-16  本文已影响0人  向前进进进

1.为什么如下代码会打印 6 个 6

setTimeout

let i = 0
for(i = 0; i<6; i++){
  setTimeout(()=>{
    console.log(i)
  },0)
}

上面代码中

2.让上面代码打印 0、1、2、3、4、5 的方法

for循环和let配合

for(let i = 0; i<6; i++){
  setTimeout(()=>{
    console.log(i)
  },0)
}
let i 
for(i = 0; i<6; i++){
  !function(j){
      setTimeout(()=>{
        console.log(j)
      },0)
  }(i)
}

用setTimeout的第三个参数,将i传进去

let i
for (i = 0; i < 6; i++) {
  setTimeout((a) => {
    console.log(a)
  }, 0, i)
}

用const

let i
for(i = 0; i<6; i++){
    const x = i
    setTimeout(()=>{
      console.log(x)
    })
}
上一篇下一篇

猜你喜欢

热点阅读