JS 函数的执行时机

60 阅读1分钟

一、如下代码会打印 6 个 6

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

for循环完后,i=6,再执行setTimeout将打印出6个6

二、打印出0,1,2,3,4,5

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

forlet一起使用时会在每次循环创建一个新的i

三、其他方法打印0,1,2,3,4,5

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