JavaScript switch 語(yǔ)句

2022-02-09 18:16 更新

switch 語(yǔ)句用于在不同的條件執(zhí)行不同的動(dòng)作。搭配case和default使用(default可以認(rèn)為是一個(gè)特殊的case,case對(duì)應(yīng)一種或多種(default)情況,Switch語(yǔ)句沒(méi)有case是沒(méi)有辦法體現(xiàn)其功能的)。


JavaScript switch 語(yǔ)句

請(qǐng)使用 switch 語(yǔ)句來(lái)選擇要執(zhí)行的多個(gè)代碼塊之一。你可以在JavaScript編程實(shí)戰(zhàn)中了解怎么使用switch語(yǔ)句進(jìn)行多選項(xiàng)選擇。

語(yǔ)法

switch(n){
    case 1:
        執(zhí)行代碼塊 1
        break;      
    case 2:      
        執(zhí)行代碼塊 2      
        break;      
    default:
        n 與 case 1 和 case 2 不同時(shí)執(zhí)行的代碼
}

代碼解釋:

  • 計(jì)算一次 switch 表達(dá)式
  • 把表達(dá)式的值與每個(gè)case的值進(jìn)行對(duì)比
  • 如果存在匹配,則執(zhí)行關(guān)聯(lián)代碼

工作原理:首先設(shè)置表達(dá)式 n(通常是一個(gè)變量)。隨后表達(dá)式的值會(huì)與結(jié)構(gòu)中的每個(gè) case 的值做比較。如果存在匹配,則與該 case 關(guān)聯(lián)的代碼塊會(huì)被執(zhí)行。請(qǐng)使用 break 來(lái)阻止代碼自動(dòng)地向下一個(gè) case 運(yùn)行,因?yàn)槟J(rèn)情況下Switch會(huì)按順序?qū)⑺衅ヅ涞腸ase(default)執(zhí)行完畢!

實(shí)例

顯示今天的星期名稱。請(qǐng)注意 Sunday=0, Monday=1, Tuesday=2, 等等:

var day=new Date().getDay();
switch (day){
    case 0:
        x="Today it's Sunday";
        break;
    case 1:
        x="Today it's Monday";
        break;
    case 2:
        x="Today it's Tuesday";
        break;
    case 3:
        x="Today it's Wednesday";
        break;
    case 4:
        x="Today it's Thursday";
        break;
    case 5:
        x="Today it's Friday";
        break;
    case 6:
        x="Today it's Saturday";
        break;
}

x 的運(yùn)行結(jié)果:

Today it's Sunday

嘗試一下 ?

break 關(guān)鍵詞

如果 JavaScript 遇到 break 關(guān)鍵詞,它會(huì)跳出 switch 代碼塊。

此舉將停止代碼塊中更多代碼的執(zhí)行以及 case 測(cè)試。

如果找到匹配,并完成任務(wù),則隨機(jī)中斷執(zhí)行(break)。無(wú)需更多測(cè)試。

break 能夠節(jié)省大量執(zhí)行時(shí)間,因?yàn)樗鼤?huì)“忽略” switch 代碼塊中的其他代碼的執(zhí)行。

不必中斷 switch 代碼塊中的最后一個(gè) case。代碼塊在此處會(huì)自然結(jié)束。

default 關(guān)鍵詞

請(qǐng)使用 default 關(guān)鍵詞來(lái)規(guī)定匹配不存在時(shí)做的事情(default也是case,是一類特殊的case,即已有case情況外的case):

實(shí)例

如果今天不是星期六或星期日,則會(huì)輸出默認(rèn)的消息:

var day=new Date().getDay();
switch (day){
    case 6:
        x="Today it's Saturday";
        break;
    case 0:
        x="Today it's Sunday";
        break;
    default:
        x="Looking forward to the Weekend";
}

嘗試一下 ?

default不必是 switch 代碼塊中最后一個(gè) case:

實(shí)例

switch (new Date().getDay()){

    default: 

        text = "期待周末!";

        break;

    case 6:

        text = "今天是周六";

        break; 

    case 0:

        text = "今天是周日";

}


嘗試一下 ?

如果 default 不是 switch 代碼塊中最后一個(gè) case,請(qǐng)記得用 break 結(jié)束默認(rèn) default。

常見(jiàn)的代碼塊

有時(shí)您會(huì)需要不同的 case 來(lái)使用相同的代碼。

在本例中,case 4 和 5 分享相同的代碼塊,而 0 和 6 分享另一段代碼塊:

實(shí)例

switch (new Date().getDay()) {

    case 4:

    case 5:

        text = "周末快到了:)";

        break; 

    case 0:

    case 6:

        text = "今天是周末~";

         break;

    default: 

        text = "期待周末!";

}


嘗試一下 ?

Switching 的細(xì)節(jié)

如果多種 case 匹配一個(gè) case 值,則選擇第一個(gè) case。

如果未找到匹配的 case,程序?qū)⒗^續(xù)使用默認(rèn) label。

如果未找到默認(rèn) label,程序?qū)⒗^續(xù) switch 后的語(yǔ)句。

嚴(yán)格的比較

Switch case 使用嚴(yán)格比較(===)。

值必須與要匹配的類型相同。

只有操作數(shù)屬于同一類型時(shí),嚴(yán)格比較才能為 true。

在這個(gè)例子中,x 將不匹配:

實(shí)例

var x = "0";

switch (x) {

    case 0:

        text = "Off";

        break;

    case 1:

        text = "On";

        break;

    default:

        text = "No value found";

}


嘗試一下 ?

相關(guān)文章

輕松學(xué)習(xí)JavaScript:JavaScript Switch Case


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)