JS:函式執行順序
阿新 • • 發佈:2018-11-15
for(var i = 0; i < 5; i++) {
setTimeout(function() {
console.log(i);
}, 1000);
}
console.log(i + "====");
這個列印結果不是 0 1 2 3 4 5====
而是 5==== 55555
很TMD的奇怪,不僅都是5 而且後面幾個5沒有時間間隔
那麼所見即所得,該函式執行的順序應該是這樣
i = 0 setTimeOut1000_0 i++ i = 1 setTimeOut1000_1 i++ i = 2 setTimeOut1000_2 i++ i = 3 setTimeOut1000_3 i++ i = 4 setTimeOut1000_4 i++ i = 5 console.log(5====); ... ... 1000毫秒後 function_0(){console(5)} function_1(){console(5)} function_2(){console(5)} function_3(){console(5)} function_4(){console(5)}