JavaScript使用if () { ... } else { ... }來進行條件判斷。
其中else語句是可選的。如果語句塊隻包含一條語句,那麼可以省略<code>{}</code>。建議永遠都要寫上<code>{}</code>,因為js對齊不像python處于同一級别。
JavaScript把<code>null</code>、<code>undefined</code>、<code>0</code>、<code>NaN</code>和<code>空字元串</code>視為<code>false</code>,其他值一概視為<code>true</code>。
for
利用for循環計算1 2 3 ... 10的結果:
for循環最常用的地方是利用索引來周遊數組:
結果:
for循環的3個條件都是可以省略的,如果沒有退出循環的判斷條件,就必須使用<code>break</code>語句退出循環,否則就是死循環:
for ... in
for循環的一個變體是<code>for ... in</code>循環,它可以把一個對象的所有屬性依次循環出來:
要過濾掉對象繼承的屬性,用<code>hasOwnProperty()</code>來實作:
由于<code>Array</code>也是對象,而它的每個元素的索引被視為對象的屬性,是以,<code>for ... in</code>循環可以直接循環出<code>Array</code>的索引:
<font color=red>請注意</font>,<code>for ... in</code>對<code>Array</code>的循環得到的是<code>String</code>而不是<code>Number</code>。
while
<code>for</code>循環在已知循環的初始和結束條件時非常有用。而上述忽略了條件的<code>for</code>循環容易讓人看不清循環的邏輯,此時用<code>while</code>循環更佳。
<code>while</code>循環隻有一個判斷條件,條件滿足,就不斷循環,條件不滿足時則退出循環。比如我們要計算100以内所有奇數之和,可以用<code>while</code>循環實作:
在循環内部變量n不斷自減,直到變為-1時,不再滿足<code>while</code>條件,循環退出。
do ... while
最後一種循環是<code>do { ... } while()</code>循環,它和<code>while</code>循環的唯一差別在于,不是在每次循環開始的時候判斷條件,而是在每次循環完成的時候判斷條件:
用<code>do { ... } while()</code>循環要小心,循環體會至少執行1次,而<code>for</code>和<code>while</code>循環則可能一次都不執行。
練習 請利用循環周遊數組中的每個名字,并顯示Hello, xxx!: