JavaScript Switch 語句
- 上一頁 JS 條件
- 下一頁 JS Loop For
switch
語句用于基于不同條件執行不同動作。
JavaScript Switch 語句
請使用 switch
語句來選擇多個需被執行的代碼塊之一。
語法
switch(表達式) { case n: 代碼塊 break; case n: 代碼塊 break; default: 默認代碼塊 }
代碼解釋:
- 計算一次 switch 表達式
- 把表達式的值與每個 case 的值進行對比
- 如果存在匹配,則執行關聯代碼
實例
getDay() 方法返回 0 至 6 之間的周名數字(weekday number)。
(Sunday=0, Monday=1, Tuesday=2 ..)
本例使用周名數字來計算周的名稱:
switch (new Date().getDay()) { case 0: day = "星期天"; break; case 1: day = "星期一"; break; case 2: day = "星期二"; break; case 3: day = "星期三"; break; case 4: day = "星期四"; break; case 5: day = "星期五"; break; case 6: day = "星期六"; }
結果將是:
break 關鍵詞
如果 JavaScript 遇到 break
關鍵詞,它會跳出 switch 代碼塊。
此舉將停止代碼塊中更多代碼的執行以及 case 測試。
如果找到匹配,并完成任務,則隨機中斷執行(break)。無需更多測試。
break
能夠節省大量執行時間,因為它會“忽略” switch 代碼塊中的其他代碼的執行。
不必中斷 switch 代碼塊中的最后一個 case。代碼塊在此處會自然結束。
default 關鍵詞
default
關鍵詞規定不存在 case 匹配時所運行的代碼:
實例
getDay()
方法返回 0 至 6 的數字周名。
如果今日既不是周六(6)也不是周日(0),則輸出一段默認消息:
switch (new Date().getDay()) { case 6: text = "今天是周六"; break; case 0: text = "今天是周日"; break; default: text = "期待周末~"; }
text 的結果是:
默認的 case 不必是 switch 代碼塊中最后一個 case:
實例
switch (new Date().getDay()) { default: text = "期待周末!"; break; case 6: text = "今天是周六"; break; case 0: text = "今天是周日"; }
如果 default
不是 switch 代碼塊中最后一個 case,請記得用 break 結束默認 case。
常見的代碼塊
有時您會需要不同的 case 來使用相同的代碼。
在本例中,case 4 和 5 分享相同的代碼塊,而 0 和 6 分享另一段代碼塊:
實例
switch (new Date().getDay()) { case 4: case 5: text = "周末快到了:)"; break; case 0: case 6: text = "今天是周末~"; break; default: text = "期待周末!"; }
Switching 的細節
如果多種 case 匹配一個 case 值,則選擇第一個 case。
如果未找到匹配的 case,程序將繼續使用默認 label。
如果未找到默認 label,程序將繼續 switch 后的語句。
嚴格的比較
Switch case 使用嚴格比較(===
)。
值必須與要匹配的類型相同。
只有操作數屬于同一類型時,嚴格比較才能為 true。
在這個例子中,x 將不匹配:
實例
var x = "0"; switch (x) { case 0: text = "Off"; break; case 1: text = "On"; break; default: text = "No value found"; }
課外書
如需更多有關 JavaScript Switch 語句的知識,請閱讀 JavaScript 高級教程中的相關內容:
- ECMAScript switch 語句
- switch 語句是 if 語句的兄弟語句。本節介紹了 switch 語句的用法,以及與 Java 中的 switch 語句的不同。
- 上一頁 JS 條件
- 下一頁 JS Loop For