switch語句的技巧
概述
switch語句對(duì)一個(gè)表達(dá)式求值蹬癌,將結(jié)果與 case 子語句比較捻浦,如果匹配秒梅,則從 case 處的語句向下執(zhí)行。
語法
break;
語句是可選擇的瘤睹,如果遇到break;
則會(huì)跳出整個(gè)switch
語句升敲。如果沒有任何case匹配,則進(jìn)入到default:
的分支轰传。default:
分支也是可選的驴党。
switch (expression) {
case value1:
// 當(dāng) expression 的結(jié)果與 value1 匹配時(shí),從此處開始執(zhí)行
statements1获茬;
[break;]
case value2:
// 當(dāng) expression 的結(jié)果與 value2 匹配時(shí)港庄,從此處開始執(zhí)行
statements2;
[break;]
...
case valueN:
// 當(dāng) expression 的結(jié)果與 valueN 匹配時(shí)倔既,從此處開始執(zhí)行
statementsN;
[break;]
default:
// 如果 expression 與上面的 value 值都不匹配時(shí),執(zhí)行此處的語句
statements_def;
[break;]
}
switch語句的技巧
case中使用條件判斷
看看下面的代碼鹏氧,當(dāng)foo為0渤涌,1,2把还,3的時(shí)候顯示alert实蓬。
var foo = 1;
switch (foo) {
case 0:
case 1:
case 2:
case 3:
alert('yes');
break;
default:
alert('not');
}
有沒有更好的寫法呢?下面這個(gè)顯然更簡潔清晰啊吊履。
var foo = 1;
switch (true) { // 非變量 TRUE 替代 foo
case foo >= 0 && foo <= 3:
alert('yes');
break;
default:
alert('not');
}
表示等級(jí)
精心設(shè)計(jì)的switch把最少最稀有的條件在上面安皱,普通的條件放在相對(duì)下面的位置
function rankProgrammer(rank){
switch(rank){
case "高級(jí)":
this.secretary = true;
case "中級(jí)":
this.laptop = true;
this.bonus = true;
case "初級(jí)":
this.salary = true;
this.vacation = true;
}
}
var xiaohu=new rankProgrammer("高級(jí)");
console.log(xiaohu);
上面這段程序顯示出“高級(jí)”程序猿擁有所有的待遇,而初級(jí)程序員只有工資和假期艇炎。