for(var i=1;i<=3;i++){ setTimeout(function(){ console.log(i); },0); }; 40. 答案:4 4 4。 原因:Javascript 事件处理器在线程空闲之前不会运行。追问,如何让上述代码输出 1 2 3? for(var i=1;i<=3;i++){ setTimeout((function(a){ //改成立即执行函数 console.log(a); })(i),0); }; 1 //输出 2 3