JavaScript switch 語句

2022-02-09 18:16 更新

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


JavaScript switch 語句

請使用 switch 語句來選擇要執(zhí)行的多個代碼塊之一。你可以在JavaScript編程實戰(zhàn)中了解怎么使用switch語句進行多選項選擇

語法

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

代碼解釋:

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

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

實例

顯示今天的星期名稱。請注意 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 的運行結(jié)果:

Today it's Sunday

嘗試一下 ?

break 關(guān)鍵詞

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

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

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

break 能夠節(jié)省大量執(zhí)行時間,因為它會“忽略” switch 代碼塊中的其他代碼的執(zhí)行。

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

default 關(guān)鍵詞

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

實例

如果今天不是星期六或星期日,則會輸出默認的消息:

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 代碼塊中最后一個 case:

實例

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

    default: 

        text = "期待周末!";

        break;

    case 6:

        text = "今天是周六";

        break; 

    case 0:

        text = "今天是周日";

}


嘗試一下 ?

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

常見的代碼塊

有時您會需要不同的 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 的細節(jié)

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

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

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

嚴格的比較

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

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

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

在這個例子中,x 將不匹配:

實例

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)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號