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