說到JavaScript中的分支結構,我們就不得不提到流程式控制制這個詞,我們所有的程式都是由數據和演算法組成的。程式=數據+演算法通常我們所說的演算法都可以通過"順序","分支","迴圈"三種結構來組合完成。 在ECMA中規定了一些語句(也稱為流程式控制制語句,分支結構語句),從本質上來說,這些語句定義了ECM ...
說到JavaScript中的分支結構,我們就不得不提到流程式控制制這個詞,我們所有的程式都是由數據和演算法組成的。
程式=數據+演算法
通常我們所說的演算法都可以通過"順序","分支","迴圈"三種結構來組合完成。
在ECMA中規定了一些語句(也稱為流程式控制制語句,分支結構語句),從本質上來說,這些語句定義了ECMAScript中的主要語法,語句通常使用一個或者多個關鍵字來完成給定任務。
1.1 if 語句
if 語句 - 只有當指定條件為 true 時,使用該語句來執行代碼
1 if (條件) 2 { 3 只有當條件為 true 時執行的代碼 4 }
if...else 語句 - 當條件為 true 時執行代碼,當條件為 false 時執行其他代碼
1 if (條件) 2 { 3 當條件為 true 時執行的代碼 4 } 5 else 6 { 7 當條件不為 true 時執行的代碼 8 }
if...else if....else 語句 - 使用該語句來選擇多個代碼塊之一來執行
1 if (條件 1) 2 { 3 當條件 1 為 true 時執行的代碼 4 } 5 else if (條件 2) 6 { 7 當條件 2 為 true 時執行的代碼 8 } 9 else 10 { 11 當條件 1 和 條件 2 都不為 true 時執行的代碼 12 }
1.2 switch 語句
使用 switch 語句來選擇要執行的多個代碼塊之一。
1 switch(n) 2 { 3 case 1: 4 執行代碼塊 1 5 break; 6 case 2: 7 執行代碼塊 2 8 break; 9 default: 10 n 與 case 1 和 case 2 不同時執行的代碼 11 }
工作原理:首先設置表達式 n(通常是一個變數)。隨後表達式的值會與結構中的每個 case 的值做比較。如果存在匹配,則與該 case 關聯的代碼塊會被執行。請使用 break 來阻止代碼自動地向下一個 case 運行。
default 關鍵詞
請使用 default 關鍵詞來規定匹配不存在時做的事情:
1 var day=new Date().getDay(); 2 switch (day) 3 { 4 case 6: 5 x="Today it's Saturday"; 6 break; 7 case 0: 8 x="Today it's Sunday"; 9 break; 10 default: 11 x="Looking forward to the Weekend"; 12 }
解釋:今天不是周六或者周日才會執行的代碼段。
1.3 if 與 switch 的比較
switch case vs else if switch case 僅用於等於比較的條件 else if 可用任意條件 if(Boolean(條件)) else if() 自帶隱式轉換,將條件轉為boolean 效率稍微低 switch case 不帶隱式轉換的等於比較,效率稍微高