JS函数的执行时机

105 阅读1分钟
  • 打印出6个6
let i = 0
for(i = 0; i<6; i++){
  setTimeout(()=>{
    console.log(i)
  },0)
}

打印出6个6的原因在于 setTimeout(),意思是此函数延迟执行,所以当系统每一次循环执行console.log(i)时,for循环已经停止循环,i此时已经等于6,由于进行了6次循环,所以返回了6个6值。

  • 打印出0,1,2,3,4,5
for(let i = 0; i<6; i++){
  setTimeout(()=>{
    console.log(i)
  },0)
}
[1,2,3,4,5].forEach(function(item, index){
console.log(`${index}}`)
})
let i=0
for(i=0;i<6;i++){
    ! function(j){
        setTimeout(()=>{
            console.log(j)
        },0)
    }(i)
}

及时函数