JS函数的执行时机

83 阅读1分钟
let i = 0
for(i = 0; i<6; i++){
  setTimeout(()=>{
    console.log(i)
  },0)
}
  • 最终结果为:6个6

答:

  • 因为setTimeout是在当前执行完之后再打印出console.log(i)

我想打印出0,1,2,3,4,5

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