for (var i = 0; i < 10; ++i) {
setTimeout(function () {console.log(i)}, 0);
}請問為什么前面那個執(zhí)行之后輸出全都是10,后面那個就是0~9呢?for (var i = 0; i < 10; ++i) {
setTimeout((function () {console.log(i)})(), 0);}還有就是setTimeout的第二個參數(shù)為0該怎么理解?我百度了一下網(wǎng)上好像沒人能夠講清楚這個啊(網(wǎng)上有人說setTimeout是異步執(zhí)行,0的話會導致輸出亂序,但是事實上后面那個代碼段執(zhí)行是0~9的遞增數(shù)列,沒有亂啊,這到底是怎么回事呢?)
一道考察JavaScript閉包的經(jīng)典面試題有點不懂
幕布斯6054654
2018-08-03 08:22:21