1. 程式人生 > 實用技巧 >JavaScript中的switch語句

JavaScript中的switch語句

JavaScript語言中的條件語句,除了if 語句,還有switch 語句。switch 常用於根據不同的條件執行不同的操作。雖然它和 if 語句都是用來判斷條件的語句,但是它們之間還是有不同。

switch的語法

語法如下所示:

switch(expression) {
    case 變數x:
    // 語句1程式碼case 變數y:
    // 語句2程式碼case 變數z:
    // 語句3程式碼塊
    break;
    default:
    // 程式碼塊
}

語法解釋:表示式值計算一次,然後我們依次將表示式的值與每一種 case 情況的值進行比較,如果匹配,就會執行與 case 對應的相關程式碼塊。

執行原理:變數 expression 的值與 case 的值進行比較,比如變數 expression 等於 case 變數 x,我們就執行語句1的程式碼塊,如果變數 expression 等於 case 變數 y 就執行語句2的程式碼塊,依次類推,如果都不符合就執行 default 語句程式碼塊。break 語言用於結束當前執行的語句,default 表示預設的,在沒有符合選項的時候預設選擇。

示例:

使用 switch 語句來看判斷今天是星期幾,並輸出對應時間。例如在一個html檔案中,寫入下列程式碼:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>js_俠課島(9xkd.com)</title>
</head>
<body>
  <div
> <p id="date"></p> </div> <script> var day; var d = new Date().getDay(); switch(d) { case 0: day = "星期天"; break; case 1: day = "星期一"; break; case 2: day = "星期二"; break; case 3: day = "星期三"; break; case 4: day = "星期四"; break; case 5: day = "星期五"; break; case 6: day = "星期六"; break; case 7: day = "星期天"; break; } document.getElementById("date").innerHTML = day; </script> </body> </html>

在瀏覽器中開啟這個HTML檔案,頁面會顯示:

星期二

我們來分析一下 <script> 標籤中的JavaScript程式碼,變數 d 是我們獲取到的當天的星期天數(我寫這個文章的時候是星期二),getDay() 方法會返回與星期相對應的數字,例如星期一返回1、星期二返回2,以此類推。

然後我們將這個變數 d 作為switch 語句的表示式值,將它與 case 後面的值匹配,如果表示式等於某個 case 後面的值,則執行響應的程式碼。例如上述程式碼中,變數 d 的值為2,那麼就會匹配到 case 2,所對應的程式碼就是day = "星期二";,所以輸出結果為星期二。後面還有一個break 語句,這個語句的作用就是跳出 switch 語句,避免同時執行多個case。

default 關鍵詞

default 關鍵詞規定 case 匹配不存在時所做的事情。

示例:

例如我們看下面這段程式碼:

var level = "P";
switch(level){
    case "A":
        console.log("第一類");
        break;
    case "B":
        console.log("第二類");
        break;
    case "C":
        console.log("第三類");
        break;
    case "D":
        console.log("第四類");
        break;
    default:
        console.log("其他");
}

輸出:

其他

上述程式碼中,如果 level 的值不滿足任何 case 的值,則會匹配到 default。程式碼中 level 的值為 P,而 case 語句中的值只有A、B、C、D,此時就會匹配到 default 語句,執行 default 語句下面的程式碼。

break 關鍵詞用於跳出 switch 程式碼塊。使用 break 能夠節省大量執行時間,因為它會忽略 switch 程式碼塊中的其他程式碼的執行。

switch 與 if 的對比

關於條件分支 switch 和 if 兩者之間的區別和關聯,我們可以通過下面這個表格進行簡單直觀的認識:

switchif
判斷條件 等值判斷 等值判斷和區間判斷
結束語句 break跳出 執行一個if後自動結束
預設和否則語句 default可以放在任何位置 else只能放在最後
  • if 語句表示式的結果是 boolean 布林型別,常用於區間判斷。
  • switch 表示式型別不能是 boolean 布林型別,可能是 byte、int、char、string、列舉,常用於等值判斷。

注意一般能用 switch 語句實現的就一定能使用 if 語句來實現,但是反過來卻是不一定的,如果區間範圍就採用 if,如果等值判斷就使用 switch。

效率問題:

  • switch case 會生成一個跳轉表來指示實際的 case 分支地址。
  • switch case 只能處理 case 為常量的情況。
  • if else 需要遍歷條件分支知道命中條件。
  • if else 能應用於更多的場所,比較靈活,但是必須遍歷所有可能的值。

豌豆資源搜尋網站https://55wd.com 電腦刺繡繡花廠 ttp://www.szhdn.com