目录

JavaScript Switch 语句


这个switch语句用于根据不同的条件执行不同的操作。


JavaScript Switch 语句

使用switch语句来选择要执行的多个代码块之一。

语法

switch( expression) {
  case x:
    // code block
    break;
  case y:
    // code block
    break;
  default:
    // code block
}

它是这样工作的:

  • switch 表达式计算一次。
  • 将表达式的值与每种情况的值进行比较。
  • 如果存在匹配,则执行关联的代码块。
  • 如果没有匹配,则执行默认代码块。

示例

这个getDay()方法将工作日返回为 0 到 6 之间的数字。

(星期日=0,星期一=1,星期二=2..)

此示例使用工作日编号来计算工作日名称:

switch (new Date().getDay()) {
  case 0:
    day = "Sunday";
    break;
  case 1:
    day = "Monday";
    break;
  case 2:
     day = "Tuesday";
    break;
  case 3:
    day = "Wednesday";
    break;
  case 4:
    day = "Thursday";
    break;
  case 5:
    day = "Friday";
    break;
  case 6:
    day = "Saturday";
}

当天的结果将是:

亲自试一试 »


中断关键字

当 JavaScript 达到break关键字,它突破了 switch 块。

这将停止 switch 块内的执行。

没有必要破坏 switch 块中的最后一个 case。无论如何,该块会在那里破裂(结束)。

笔记:如果省略break语句,即使评估与case不匹配,也会执行下一个case。


默认关键字

这个default关键字指定如果没有大小写匹配则运行的代码:

示例

这个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";
}

文本的结果将是:

亲自试一试 »

这个defaultcase 不必是 switch 块中的最后一个 case:

示例

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 块中的最后一个情况,请记住以中断结束默认情况。


通用代码块

有时您会希望不同的 switch 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";
}
亲自试一试 »

切换详情

如果多个 case 与一个 case 值匹配,则第一的案例被选中。

如果没有找到匹配的案例,程序继续执行默认标签。

如果没有找到默认标签,程序将继续执行语句切换后


严格比较

开关盒用途严格的比较(===)。

这些值必须具有相同类型才能匹配。

仅当操作数属于同一类型时,严格比较才成立。

在此示例中,x 将不匹配:

示例

let x = "0";
switch (x) {
  case 0:
    text = "Off";
    break;
  case 1:
    text = "On";
    break;
  default:
    text = "No value found";
}
亲自试一试 »

通过练习测试一下

练习:

创建一个switch语句将警告"Hello" iffruits是 "banana",并且 "Welcome" 如果fruits是"apple"。

(fruits) {
  "Banana":
    alert("Hello")
    break;
  "Apple":
    alert("Welcome")
    break;    
}

开始练习