循环与定时器

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

原文地址:https://www.cnblogs.com/dudududadada/p/14675328.html