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)}
同步 》異步》回調