摘要:我們改一下這個例子這里我們在循環里隨便打印個什么東西,你會發現最后都是執行了次。。。
for (var i = 0; i < 10; i++) { setTimeout(function() { console.log(i); }, 100 * i); }
想想打印結果是啥?
沒錯是10次10,為什么不是我們想要的0,1,2,3,4,5,6,7,8,9?
開始我也很納悶,一直想不明白。找了很多資料才終于想明白了。其實網上說的很多什么異步,閉包等等,我覺得解釋的不是很容易明白。
其實簡單點來說:
1.這個for循環肯定是循環10次的,所以結果為什么是10個10
2.因為setTimeout方法是在for循環結束之后再執行的,for循環非常的快,結束之后的i是10.
3.在這個for循環當中的setTimeout是會執行10次的。所以結果10個10,可能這樣還不少很明白。我們改一下這個例子
for (var i = 0; i < 10; i++) { console.log(123); }
這里我們在for循環里隨便打印個什么東西,你會發現最后都是執行了10次。。。
so,到這里我終于明白了。為什么最上面的結果是10個10了。
最后要想打印0到9,有很多方法了。例如:
for (var i = 0; i < 10; i++) { console.log(i); }
這樣直接打印就好了。。?;蛘甙裿ar或者let。。。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/107092.html
摘要:允許在塊級作用域內聲明函數。上面代碼中,存在全局變量,但是塊級作用域內又聲明了一個局部變量,導致后者綁定這個塊級作用域,所以在聲明變量前,對賦值會報錯。 ES5的作用域 變量起作用的范圍,js中能創建作用域的只能是函數 { let a = 1; var b = 2; } console.log(a); // a is not defined console.log(b); //...
摘要:摘要是一個項目,它被標榜為快如閃電的集群計算。它擁有一個繁榮的開源社區,并且是目前最活躍的項目。提供了一個更快更通用的數據處理平臺。更多經典案例介紹期待下回分解。。。 摘要 Spark是一個Apache項目,它被標榜為快如閃電的集群計算。它擁有一個繁榮的開源社區,并且是目前最活躍的Apache項目。Spark提供了一個更快、更通用的數據處理平臺。和Hadoop相比,Spark可以讓你的...
閱讀 1201·2023-04-26 02:42
閱讀 1642·2021-11-12 10:36
閱讀 1808·2021-10-25 09:47
閱讀 1276·2021-08-18 10:22
閱讀 1816·2019-08-30 15:52
閱讀 1225·2019-08-30 10:54
閱讀 2642·2019-08-29 18:46
閱讀 3506·2019-08-26 18:27