for(var i = 0;i<5;i++){
setTimeout(function(){
alert(i);
},500);
}
setTimeOut是異步的,等你500毫秒輸出時,for循環早就跑完了,i早變成5了
你可以這樣看一下
setTimeout(function(){
alert(i);
},100);
alert("阻斷");
}
這樣就能輸出12345了,那個100若是改為3000還是會輸出別的數字
到這裡你就能明白運行機理了