js面试题1

前端小白 前端 2022 2020-09-29
for(var i=0;i<2;i++){
  function a(){
    console.log(i)
  }
  a()
  setTimeout(() => {
    console.log(i)
  },i)
}

/*
预测:
第一步:变量提升 for循环之前a先提升了 var a = function(){console.log(i)}
第二步:for每次执行一次执行一次a 输出 0,1 每次循环给事件注册表注册一个函数 () => {console.log(i)}
第三步:事件到达可执行条件的回调函数会进去事件队列,js执行栈为空了以后,会轮询这个事件队列,事件队列里面的回调函数执行
0,1,2,2
*/
Apipost 私有化火热进行中

评论