JS 函数的执行时机

为什么打印出6 个 6?

setTimeout 会过一段时间才去执行,这时候for已经循环完了所以打出6个6

let i = 0
for(i = 0; i<6; i++){
  setTimeout(()=>{
    console.log(i)
  },0)
} 
为什么打印出 `0,1,2,3,4,5 ?

setTimeout 会过一段时间才去执行,这时候for已经循环完了所以打出6个6

let i = 0
for(i = 0; i<6; i++){
  setTimeout(()=>{
    console.log(i)
  },0)
} 
除了使用 for let 配合,还有什么其他方法可以打印出 0、1、2、3、4、5
for(let i = 0; i<6; i++){
    let x = i
    setTimeout(()=>{
       console.log(x)
     })
}
for(let i = 0; i<6; i++){
  setTimeout(!function(){
    console.log(i)
  }(),0)
}
for(let i = 0; i<6; i++){
  !function(){
    console.log(i)
  }()
}
for(let i = 0; i<6; i++){
    console.log(i)
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。