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";
} 
自己动手试一试 »
 
