2 shenchaohao12321 shenchaohao12321 于 2013.11.16 09:01 提问

JS代码 为什么结果是5
js

for(var i = 0;i<5;i++){
setTimeout(function(){
alert(i);
},500);
}

1个回答

franzhong
franzhong   2013.11.21 13:22
已采纳

setTimeOut是异步的,等你500毫秒输出时,for循环早就跑完了,i早变成5了
你可以这样看一下

setTimeout(function(){
alert(i);
},100);
alert("阻断");
} 

这样就能输出12345了,那个100若是改为3000还是会输出别的数字
到这里你就能明白运行机理了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!