2012-04-24 62 views

回答

13

循環只會只要i小於length重複。它只是假設i已在其他地方聲明。

實際上,for循環結構中的所有部分都是可選的。例如,這是創造一個無限循環一個完全有效的方式:

​for(;;) window.alert('Are you sick of alerts yet?');​​​​​​​​​ 
+0

+1 for'for(;;)',這帶來了回憶從之前我意識到'while(true)'更清晰(出於某種原因,我被介紹給'for(;;)'作爲規範創建一個無限循環的方式)... – Cameron 2012-04-24 04:18:10

+0

是的,JavaScript是一種獨特的語言,因爲這些hacky-ish快捷方式有些被鼓勵*只是爲了節省字節。否則,'while(true)'肯定更容易閱讀。用'!!'或'~~'投射也很有趣.. – 2012-04-24 04:24:26

+0

哈,但我實際上是在學習C++(第一種編程語言),而不是JavaScript! ;-) – Cameron 2012-04-24 04:27:27

9

這是一個普通for循環,什麼事情都不在初始化步驟。

這相當於寫作:

; 
while (i < length) { 
    // ... 
    i++; 
} 

,除非有一個在...身體continue,在這種情況下for循環將執行之前i++重新評估的條件和while循環將不。

+0

那麼爲什麼人們更喜歡用簡單的'while'循環來寫這個呢? – 2014-07-23 10:08:43

+0

@ nl-x:好點。它更緊湊,但可讀性稍差;然而,如果* intent *有一個正常的'for'循環,並且恰好沒有需要初始化步驟,那麼我看到使用該表單沒有任何問題。如果在循環體內有一個「continue」,真正的區別就會出現 - for表單會增加,而while表單不會。我編輯了我的答案來反映這一點,謝謝。 – Cameron 2014-07-23 11:21:30

+0

對不起,我沒看清楚。我認爲'i ++'部分也被省略了,例如'for(; i 2014-07-23 11:33:11

相關問題