javascript

//以下这段代码将输出什么呢?
for(var i=1;i<=3;i++){
  setTimeout(function(){console.log(i);},0);
}

答案:4,4,4

原理:调用setTimeout的时候,会有一个延时事件排入事件队列,然后JS代码的主逻辑会继续去执行setTimeout之后的JS代码,直到再也没有任何代码的时候,

         JS虚拟机会去事件队列里把满足条件出发的事件执行掉

posted on 2014-11-22 00:20  michaeljunlove  阅读(143)  评论(0编辑  收藏  举报

导航