JavaScript Switch 语句
switch
语句用于根据不同的条件执行不同的操作。
JavaScript Switch 语句
使用 switch
语句选择要执行的多个代码块中的一个。
语法
switch(表达式) {
case x
// 代码块
break;
case y
// 代码块
break;
default
// 代码块
}
工作原理
- switch 表达式只会被评估一次。
- 表达式的值会与每个 case 的值进行比较。
- 如果匹配,则执行关联的代码块。
- 如果没有匹配,则执行 default 代码块。
示例
getDay()
方法返回星期几,用 0 到 6 之间的数字表示。
(星期日 = 0, 星期一 = 1, 星期二 = 2 ...)
本示例使用星期几的数字来计算星期几的名称
switch (new Date().getDay()) {
case 0
day = "星期日";
break;
case 1
day = "星期一";
break;
case 2
day = "星期二";
break;
case 3
day = "星期三";
break;
case 4
day = "星期四";
break;
case 5
day = "星期五";
break;
case 6
day = "星期六";
}
day 的结果将是
Break 关键字
当 JavaScript 遇到 break
关键字时,它会跳出 switch 块。
这将停止 switch 块内的执行。
在 switch 块的最后一个 case 中不需要使用 break 语句。块会在此处结束(终止)。
注意:如果省略 break 语句,即使评估不匹配 case,下一个 case 也会被执行。
Default 关键字
default
关键字指定如果没有 case 匹配,要运行的代码
示例
getDay()
方法返回星期几,用 0 到 6 之间的数字表示。
如果今天既不是星期六 (6) 也不是星期日 (0),则写一个默认消息
switch (new Date().getDay()) {
case 6
text = "今天是星期六";
break;
case 0
text = "今天是星期日";
break;
default
text = "期待周末";
}
text 的结果将是
default
case 不必是 switch 块中的最后一个 case
示例
switch (new Date().getDay()) {
default
text = "期待周末";
break;
case 6
text = "今天是星期六";
break;
case 0
text = "今天是星期日";
}
自己尝试一下 »
如果 default
不是 switch 块中的最后一个 case,请记住在 default case 结束时使用 break。
常见的代码块
有时你会希望不同的 switch case 使用相同的代码。
在本示例中,case 4 和 5 共享同一个代码块,case 0 和 6 共享另一个代码块
示例
switch (new Date().getDay()) {
case 4
case 5
text = "很快就是周末了";
break;
case 0
case 6
text = "现在是周末";
break;
default
text = "期待周末";
}
自己尝试一下 »
Switch 详情
如果多个 case 匹配 case 值,则选择第一个 case。
如果没有找到匹配的 case,程序会继续执行default 标签。
如果没有找到 default 标签,程序会继续执行switch之后的语句。
严格比较
Switch case 使用严格比较 (===).
值必须是相同类型才能匹配。
严格比较只有在操作数类型相同的情况下才能为真。
在此示例中,x 将不会匹配。
示例
let x = "0";
switch (x) {
case 0
text = "Off";
break;
case 1
text = "On";
break;
default
text = "No value found";
}
自己尝试一下 »