switch語句的技巧
概述
switch語句對一個表達式求值,將結果與 case 子語句比較,如果匹配,則從 case 處的語句向下執行。
語法
break;
語句是可選擇的,如果遇到break;
則會跳出整個switch
語句。如果沒有任何case匹配,則進入到default:
的分支。default:
分支也是可選的。
switch (expression) {
case value1:
// 當 expression 的結果與 value1 匹配時,從此處開始執行
statements1;
[break;]
case value2:
// 當 expression 的結果與 value2 匹配時,從此處開始執行
statements2;
[break;]
...
case valueN:
// 當 expression 的結果與 valueN 匹配時,從此處開始執行
statementsN;
[break;]
default:
// 如果 expression 與上面的 value 值都不匹配時,執行此處的語句
statements_def;
[break;]
}
switch語句的技巧
case中使用條件判斷
看看下面的代碼,當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');
}
表示等級
精心設計的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);
上面這段程序顯示出“高級”程序猿擁有所有的待遇,而初級程序員只有工資和假期。