JavaScript 常用的控制語句有條件語句和循環語句,其中條件語句又分為 if、if-else 和 switch。本文將重點介紹 switch 語句。
switch 語句的主要作用是根據不同的情況執行不同的代碼塊。switch 語句的語法結構如下:
switch (expression) { case value1: statement1; break; case value2: statement2; break; ... default: defaultStatement; }
expression 是待檢測的表達式,case value 是表達式可能的取值,在匹配到對應的取值時就執行對應的語句塊。default 表示默認情況,即表達式的取值不匹配任何一個 case 時執行的語句。
舉個例子,假設我們要根據星期幾輸出不同的問候語。使用 if-else 語句時可以這樣寫:
var d = new Date(); var weekday = d.getDay(); if (weekday === 1) { console.log("星期一,加油工作!"); } else if (weekday === 2) { console.log("星期二,抖擻精神!"); } else if (weekday === 3) { console.log("星期三,周中沖刺!"); } else if (weekday === 4) { console.log("星期四,加油沖刺!"); } else if (weekday === 5) { console.log("星期五,周末倒計時!"); } else if (weekday === 6) { console.log("星期六,周末計劃!"); } else { console.log("星期日,放松身心!"); }
但使用 switch 語句可以這樣寫:
var d = new Date(); var weekday = d.getDay(); switch (weekday) { case 1: console.log("星期一,加油工作!"); break; case 2: console.log("星期二,抖擻精神!"); break; case 3: console.log("星期三,周中沖刺!"); break; case 4: console.log("星期四,加油沖刺!"); break; case 5: console.log("星期五,周末倒計時!"); break; case 6: console.log("星期六,周末計劃!"); break; default: console.log("星期日,放松身心!"); }
可以看到,使用 switch 語句比 if-else 語句更加簡潔明了。
除了上述用法外,switch 語句還可以將多個 case 對應同一個語句塊。例如,我們要檢測一個字符串是否為 "John"、"Jack"或者 "James" 時,可以這樣寫:
var name = "John"; switch (name) { case "John": case "Jack": case "James": console.log("Welcome, " + name + "!"); break; default: console.log("Unknown name!"); }
上述代碼中,當 name 的值為 "John"、"Jack" 或者 "James" 時,都會執行 console.log("Welcome, " + name + "!"); 這一語句塊。
最后,需要注意的是,switch 語句中的 case 取值只能是固定值,而不能是表達式。因此,下面的語句是無效的:
var x = 3, y = 4; switch (x + y) { // Invalid! case 7: console.log("x + y = 7"); break; default: console.log("x + y != 7"); }
總結:switch 語句是 JavaScript 中一種常見的條件語句,在比較多個固定值時比 if-else 語句更為簡潔明了。