switch語句是JavaScript的條件語句之一,用于在不同條件下執(zhí)行不同的動作。
switch語句對表達(dá)式求值,將表達(dá)式的值與case子句匹配,并執(zhí)行與該case關(guān)聯(lián)的語句,以及在匹配case之后的語句。
與每個case標(biāo)簽關(guān)聯(lián)的break語句可確保一旦執(zhí)行了匹配的語句,程序便會退出switch,并在switch之后的語句處繼續(xù)執(zhí)行。如果省略break,程序?qū)⒃趕witch語句的下一個語句處繼續(xù)執(zhí)行。
default語句指定如果沒有匹配的情況下,默認(rèn)運(yùn)行的一些代碼。switch中只能有一個默認(rèn)語句。盡管這是可選的,但建議您使用它,因?yàn)樗梢蕴幚硪饬现獾那闆r。
使用switch選擇要執(zhí)行的許多代碼塊之一。這是長嵌套if ... else語句的完美解決方案。
switch (expression) { case value1: //語句執(zhí)行時 //表達(dá)式匹配的結(jié)果 value1 break; case value2: //語句執(zhí)行時 //表達(dá)式匹配的結(jié)果 value2 break; ... case valueN: //語句執(zhí)行時 //表達(dá)式匹配的結(jié)果 valueN break; default: //沒有以上情況時執(zhí)行的語句 //這些值與表達(dá)式的值匹配 }
var city = document.querySelector("input").value; var text; switch (city) { case "Jaipur": text = "Jaipur is known as the Pink City"; break; case "Bengaluru": text = "Bengaluru is known as the IT city"; break; case "Kerala": text = "Kerala God's Own Country"; break; default: text = "I have never heard of that city..."; }測試看看?/?
所有瀏覽器都完全支持switch語句:
Statement | ![]() | ![]() | ![]() | ![]() | ![]() |
switch | 是 | 是 | 是 | 是 | 是 |
參數(shù) | 描述 |
---|---|
expression | 一個表達(dá)式,其結(jié)果與每個case子句匹配。 |
case valueN | 用于與表達(dá)式匹配的case子句。如果表達(dá)式匹配指定的valueN,則執(zhí)行case子句中的語句,直到switch語句的結(jié)尾或break。 |
default | (可選)默認(rèn)子句;如果提供,則如果expression的值與任何case子句都不匹配,則執(zhí)行此子句。 |
JavaScript版本: | ECMAScript 1 |
---|
使用工作日編號來計算工作日名稱(星期日= 0,星期一= 1,依此類推...):
var day; switch (new Date().getDay()) { case 0: day = "Sunday"; break; case 1: day = "Monday"; break; case 2: day = "Tuesday"; break; case 3: day = "Wednesday"; break; case 4: day = "Thursday"; break; case 5: day = "Friday"; break; case 6: day = "Saturday"; break; default: day = "Undefined Day"; }測試看看?/?
如果您忘記break,那么腳本將從符合條件的情況開始運(yùn)行,然后在滿足條件的情況下運(yùn)行情況:
var num = Number(document.querySelector("input").value); var text; switch (num) { case 1: text = "您輸入的號碼是 1"; case 2: text = "您輸入的號碼是 2"; case 3: text = "您輸入的號碼是 3"; case 4: text = "您輸入的號碼是 4"; case 5: text = "您輸入的號碼是 5"; default: text = "Default statement executed"; }測試看看?/?
有時,您會希望不同的情況使用相同的代碼,或者使用通用代碼。
這是單操作switch語句的示例,其中四個不同的值執(zhí)行的操作完全相同:
var num = Number(document.querySelector("input").value); var text; switch (num) { case 1: case 2: case 3: case 4: text = "您輸入的號碼是介于 1 - 4"; break; case 5: case 6: case 7: case 8: text = "您輸入的號碼是介于 5 - 8"; break; default: text = "默認(rèn)語句被執(zhí)行"; }測試看看?/?
JavaScript教程:JavaScript If ... Else語句
JavaScript教程:JavaScript switch
JavaScript參考:JavaScript break語句