JavaScript的流程即程序語句運行的順序。默認情況下,JavaScript按照語句排列的順序運行,這種運行被稱作順序運行。除了順序運行外,JavaScript還允許一些特殊的運行順序結構,通過這些特殊的程序運行順序,可以編寫一些復雜結構的網站制作腳本。
一、選擇結構
選擇結構通常用來指明程序代碼的多個運行順序或方向,并為這些順序或方向創建一個交叉點。選擇結構的程序又可以分為以下4種。
1.單一選擇結構
單一選擇結構是指使用JavaScript語句測試一個條件,當條件滿足測試需求時,則執行某些命令。單一選擇結構需要使用if語句,如下所示。

2.雙路選擇結構
雙路選擇結構是指用JavaScript測試一個條件,當條件滿足測試需求時,執行一段命令。當條件不滿足測試的需求時,則執行另一段命令。由于程序在測試后會出現兩個選項,故被稱作雙路選擇結構。雙路選擇結構需要使用if ..else語句,如下所示。

3.內聯三元運算符
JavaScript還支持隱式的條件格式,這類格式的條件要在之后使用一個問號(?)。這類條件如需要指定兩個選項,可在兩個選項之間加冒號(:)隔開,如下所示。

4.多路選擇結構
之前介紹的選擇結構均是單路或雙路選擇結構。JavaScript還支持多路選擇結構。如果需要測試多個條件,可以為程序添加switch... case語句,如下所示。

二.循環結構
在JavaScript中,還可以使用循環結構。循環結構的特點是根據一定的條件多次運行,直到滿足一定的條件后停止。例如,打印輸出九九乘法表的程序就需要使用這種結構。
1.由計數器控制的循環
這種循環需要用for語句指定一個計數器變量、一個測試條件以及更新計數器的操作。在每次循環的重復之前,都將測試該條件。如果測試成功,將運行循環中的代碼;如果測試不成功,則不運行循環中的代碼,程序繼續運行緊跟在循環后的第一行代碼,如下所示。

在執行循環后,計算機變量將在下一次循環之前被更新。如果循環條件被滿足,則循環將停止執行。如果測試條件不會被滿足,則將導致無限循環,即死循環。在設計程序時,應極力避免死循環的發生。
1.對對象的每個屬性都進行操作
JavaScript還提供了一種特別的循環方式來遍歷一個對象的所有用戶定義的屬性或者一個數組的所有元素。Fo... in循環中的循環計數器是一個字符串,而不是數字。它包含當前屬性的名稱或者當前數組元素的下標,如下所示。

2.在循環開頭測試表達式
如果希望控制語句或語句塊的循環執行,需要不只是“運行該代碼n次”,而是更復雜的規則,則需要使用while循環。while循環和for循環相似,其區別在于while循環沒有內置的計數器或更新表達式,如下所示。

3.在循環的末尾測試表達式
在JavaScript中,還有一種do...while語句循環,其與while循環相似,不同之處在于它總是至少運行一次,因為它是在循環的末尾檢查條件,而不是在開頭。例如,上面例子的代碼也可以用如下的方法編寫。

一、選擇結構
選擇結構通常用來指明程序代碼的多個運行順序或方向,并為這些順序或方向創建一個交叉點。選擇結構的程序又可以分為以下4種。
1.單一選擇結構
單一選擇結構是指使用JavaScript語句測試一個條件,當條件滿足測試需求時,則執行某些命令。單一選擇結構需要使用if語句,如下所示。

2.雙路選擇結構
雙路選擇結構是指用JavaScript測試一個條件,當條件滿足測試需求時,執行一段命令。當條件不滿足測試的需求時,則執行另一段命令。由于程序在測試后會出現兩個選項,故被稱作雙路選擇結構。雙路選擇結構需要使用if ..else語句,如下所示。

3.內聯三元運算符
JavaScript還支持隱式的條件格式,這類格式的條件要在之后使用一個問號(?)。這類條件如需要指定兩個選項,可在兩個選項之間加冒號(:)隔開,如下所示。

4.多路選擇結構
之前介紹的選擇結構均是單路或雙路選擇結構。JavaScript還支持多路選擇結構。如果需要測試多個條件,可以為程序添加switch... case語句,如下所示。

二.循環結構
在JavaScript中,還可以使用循環結構。循環結構的特點是根據一定的條件多次運行,直到滿足一定的條件后停止。例如,打印輸出九九乘法表的程序就需要使用這種結構。
1.由計數器控制的循環
這種循環需要用for語句指定一個計數器變量、一個測試條件以及更新計數器的操作。在每次循環的重復之前,都將測試該條件。如果測試成功,將運行循環中的代碼;如果測試不成功,則不運行循環中的代碼,程序繼續運行緊跟在循環后的第一行代碼,如下所示。

在執行循環后,計算機變量將在下一次循環之前被更新。如果循環條件被滿足,則循環將停止執行。如果測試條件不會被滿足,則將導致無限循環,即死循環。在設計程序時,應極力避免死循環的發生。
1.對對象的每個屬性都進行操作
JavaScript還提供了一種特別的循環方式來遍歷一個對象的所有用戶定義的屬性或者一個數組的所有元素。Fo... in循環中的循環計數器是一個字符串,而不是數字。它包含當前屬性的名稱或者當前數組元素的下標,如下所示。

2.在循環開頭測試表達式
如果希望控制語句或語句塊的循環執行,需要不只是“運行該代碼n次”,而是更復雜的規則,則需要使用while循環。while循環和for循環相似,其區別在于while循環沒有內置的計數器或更新表達式,如下所示。

3.在循環的末尾測試表達式
在JavaScript中,還有一種do...while語句循環,其與while循環相似,不同之處在于它總是至少運行一次,因為它是在循環的末尾檢查條件,而不是在開頭。例如,上面例子的代碼也可以用如下的方法編寫。
