所以我有這段代碼如下:JavaScript的數組循環
var divs = ["A", "B", "C"];
for (var i = 0, div; div = divs[i]; i++) {
print(div);
}
據我瞭解,在for循環遍歷的div數組的每個元素並打印它們。然而,我無法理解循環如何終止。有人可以向我解釋嗎?
所以我有這段代碼如下:JavaScript的數組循環
var divs = ["A", "B", "C"];
for (var i = 0, div; div = divs[i]; i++) {
print(div);
}
據我瞭解,在for循環遍歷的div數組的每個元素並打印它們。然而,我無法理解循環如何終止。有人可以向我解釋嗎?
由於div = divs[i]
將爲undefined
,因此當i
超出範圍時,循環終止。
由於undefined
是錯誤的值,因此認爲條件未被滿足,並且循環停止。
請注意,您正在執行分配,而不是比較。賦值表達式返回分配的值,並且該值用於該條件。
您還應該注意,只有在Array的成員都不是虛假的情況下,該技術纔是可靠的。例如,如果陣列中有0
,它將提前終止。
的for
循環定義是否要終止的部分是第二部分:
div = divs[i]
通常情況下,你會使用i < divs.length
這將產生true
或false
。這裏,表達式隨後評估爲"A"
,"B"
,"C"
和undefined
。 undefined
在這裏的作用類似於false
:它終止循環。這是因爲undefined
是一個「falsy」值,如false
是。 (字母不是。)
謝謝你的好評! :-) – Hirvesh 2012-07-22 16:21:13