Switch语句的技巧

时间:2021-08-13 04:32:28

概述

switch语句对一个表达式求值,将结果与 case 子语句比较,如果匹配,则从 case 处的语句向下执行。

语法

break;语句是可选择的,如果遇到break;则会跳出整个switch语句。如果没有任何case匹配,则进入到default:的分支。default:分支也是可选的。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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;]
}

case中使用条件判断

看看下面的代码,当foo为0,1,2,3的时候显示alert。

?
1
2
3
4
5
6
7
8
9
10
11
var foo = 1;
switch (foo) {
case 0:
case 1:
case 2:
case 3:
alert('yes');
break;
default:
alert('not');
}

有没有更好的写法呢?下面这个显然更简洁清晰啊。

?
1
2
3
4
5
6
7
8
var foo = 1;
switch (true) { // 非变量 TRUE 替代 foo
case foo >= 0 && foo <= 3:
alert('yes');
break;
default:
alert('not');
}

表示等级

精心设计的switch把_最少最稀有的条件_在上面,普通的条件放在相对下面的位置

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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);

以上内容给大家介绍了switch语句的技巧,希望对大家以上帮助。