JavaScript Switch 语句
switch
语句用于基于不同条件执行不同操作。
JavaScript Switch 语句
使用 switch
语句从多个代码块中选择一个来执行。
语法
switch(expression) {
case x
// 代码块
break;
case y
// 代码块
break;
default
// 代码块
}
工作原理如下
- switch 表达式仅计算一次。
- 表达式的值将与每个 case 的值进行比较。
- 如果匹配,则执行关联的代码块。
- 如果没有匹配项,则执行 default 代码块。
示例
getDay()
方法返回星期几,数字介于 0 到 6 之间。
(星期日=0, 星期一=1, 星期二=2...)
此示例使用星期几的数字来计算星期几的名称
switch (new Date().getDay()) {
case 0
day = "Sunday";
break;
case 1
day = "星期一";
break;
case 2
day = "Tuesday";
break;
case 3
day = "星期三";
break;
case 4
day = "Thursday";
break;
case 5
day = "Friday";
break;
case 6
day = "星期六";
}
day 的结果将是
break 关键字
当 JavaScript 遇到 break
关键字时,它会跳出 switch 块。
这将停止 switch 块内的执行。
switch 块中的最后一个 case 不一定需要 break。块在那里(结束) anyway。
注意: 如果省略 break 语句,即使求值不匹配 case,下一个 case 也会被执行。
default 关键字
default
关键字指定如果没有 case 匹配时运行的代码
示例
getDay()
方法返回星期几,数字介于 0 到 6 之间。
如果今天既不是星期六 (6) 也不是星期日 (0),则编写默认消息
switch (new Date().getDay()) {
case 6
text = "Today is Saturday";
break;
case 0
text = "Today is Sunday";
break;
default
text = "Looking forward to the Weekend";
}
text 的结果将是
default
case 不一定在 switch 块的最后。
示例
switch (new Date().getDay()) {
default
text = "Looking forward to the Weekend";
break;
case 6
text = "Today is Saturday";
break;
case 0
text = "Today is Sunday";
}
自己动手试一试 »
如果 default
不是 switch 块中的最后一个 case,请记住用 break 结束 default case。
共享代码块
有时您希望不同的 switch cases 使用相同的代码。
在此示例中,case 4 和 5 共享相同的代码块,而 0 和 6 共享另一个代码块
示例
switch (new Date().getDay()) {
case 4
case 5
text = "Soon it is Weekend";
break;
case 0
case 6
text = "It is Weekend";
break;
default
text = "Looking forward to the Weekend";
}
自己动手试一试 »
Switching Details
如果多个 case 与 case 值匹配,则选择 **第一个** case。
如果找不到匹配的 case,程序将继续执行 **default** 标签。
如果未找到 default 标签,程序将继续执行 **switch 之后的** 语句。
严格比较
Switch cases 使用 **严格** 比较 (===)。
要匹配,值必须是同一类型。
严格比较只有在操作数类型相同时才可能为 true。
在此示例中,x 没有匹配项
示例
let x = "0";
switch (x) {
case 0
text = "Off";
break;
case 1
text = "On";
break;
default
text = "No value found";
}
自己动手试一试 »