JavaScript switch語句的技巧

switch語句的技巧

概述

switch語句對一個表達(dá)式求值,將結(jié)果與 case 子語句比較,如果匹配,則從 case 處的語句向下執(zhí)行。

語法

break;語句是可選擇的,如果遇到break;則會跳出整個switch語句。如果沒有任何case匹配,則進(jìn)入到default:的分支。default:分支也是可選的。

switch (expression) {
  case value1:
    // 當(dāng) expression 的結(jié)果與 value1 匹配時,從此處開始執(zhí)行
    statements1;
    [break;]
  case value2:
    // 當(dāng) expression 的結(jié)果與 value2 匹配時,從此處開始執(zhí)行
    statements2;
    [break;]
  ...
  case valueN:
    // 當(dāng) expression 的結(jié)果與 valueN 匹配時,從此處開始執(zhí)行
    statementsN;
    [break;]
  default:
    // 如果 expression 與上面的 value 值都不匹配時,執(zhí)行此處的語句
    statements_def;
    [break;]
}

switch語句的技巧

case中使用條件判斷

看看下面的代碼,當(dāng)foo為0,1,2,3的時候顯示alert。

var foo = 1;
switch (foo) {
    case 0:
    case 1:
    case 2:
    case 3:
        alert('yes');
        break;
    default:
        alert('not');
}

有沒有更好的寫法呢?下面這個顯然更簡潔清晰啊。

var foo = 1;
switch (true) { // 非變量 TRUE 替代 foo
    case foo >= 0 && foo <= 3:
        alert('yes');
        break;
    default:
        alert('not');
}

表示等級

精心設(shè)計的switch把最少最稀有的條件在上面,普通的條件放在相對下面的位置

function rankProgrammer(rank){ 
    switch(rank){ 
      case "高級": 
        this.secretary = true;
      case "中級": 
        this.laptop = true;
        this.bonus = true;
      case "初級": 
        this.salary = true;
        this.vacation = true; 
    }
}
var xiaohu=new rankProgrammer("高級");
console.log(xiaohu);

上面這段程序顯示出“高級”程序猿擁有所有的待遇,而初級程序員只有工資和假期。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容