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