JS 函数的执行时机

77 阅读1分钟
  1. JS函数的执行时机也称调用时机,是函数的九大要素之一,时机不同,结果不同
  2. 分析如下两段代码

微信图片_20230322111031.png

  • 上述两段代码区别在于,let在for外和内,打印出的结果不同,setTimeout()过一段时间后执行,尽快但不是现在
  • i已经执行完成到6了,setTimeout才开始执行,要执行6次,故打印出6个6
  • 当将let放入for里时,JS每次都会“复制”下j,所以setTimeout时,有6个j,分别为0,1,2,3,4,5,执行6次,即打印出0,1,2,3,4,5
  • 总的来说,执行时要想清楚顺序
  1. 还可以使其变成立即执行函数,能打印出0,1,2,3,4,5
let k=0
for(k=0;k<6;k++){
    ! function(k){
        setTimeout(()=>{
            console.log(k)
        },0)
      }(k)
}