二维码

JavaScript去向

JavaScript Switch 语句


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


JavaScript Switch 语句

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

语法

1
2
3
4
5
6
7
8
switch(expression) {  
  case x:
    // code block    break;
  case y:
    // code block    break;
  default:
    // code block
}

这是它的工作原理:

  • 开关表达式计算一次。
  • 将表达式的值与每个事例的值进行比较。
  • 如果存在匹配项,则执行关联的代码块。
  • 如果没有匹配项,则执行默认代码块。
:`getDay()`方法将工作日返回为 0 和 6。(星期日=0,星期一=1,星期二=2..)此示例使用工作日编号来计算工作日名称
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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";
}
:当天的结果将是
1
Wednesday


break 关键字

当 JavaScript 到达break关键字时,它会跳出switch块。

这将停止switch块内的执行。

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

注意: 如果省略 break 语句,则即使 评估与案例不符。


默认关键字

default关键字指定在没有 案例匹配:

:getDay()方法将工作日返回为 0 和 6。如果今天既不是星期六(6)也不是星期日(0),请写一条默认消息:
1
2
3
4
5
6
7
8
9
10
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";
}
:当天的结果将是
1
`Looking forward to the Weekend`

默认情况不必是switch块中的最后一个情况:

1
2
3
4
5
6
7
8
9
10
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,请记住以中断结束default case


通用代码块

有时你会想要不同的 切换大小写以使用相同的 法典。

在此示例中,4 和 5 共享相同的代码块,0 和 6 共享 另一个代码块:

1
2
3
4
5
6
7
8
9
10
11
12
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";
}


切换详细信息

如果多个事例与事例值匹配,则选择第一个事例。

如果未找到匹配的事例,程序将继续使用默认标签。

如果未找到默认标签,则程序将继续执行切换后的语句。


严格比较

开关案例使用严格比较 (===)。

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

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

在此示例中,x 没有匹配项:

1
2
3
4
5
6
7
8
9
10
11
let x = "0";  
switch (x) {
  case 0:
    text = "Off";
    break;
  case 1:
    text = "On";
    break;
  default:
    text = "No value found";
}