JavaScript switch

栏目: Javascript 发布时间:2024-11-04

在 JavaScript 中,switch 语句是一种多分支选择结构,用于根据不同的条件执行不同的代码块。它提供了一种比多重 if-else 语句更清晰、更易读的替代方案。以下是 switch 语句的详细教程,包括其基本语法、使用示例和一些注意事项。

基本语法

switch (expression) {
  case value1:
    // 当 expression 等于 value1 时执行的代码
    break;
  case value2:
    // 当 expression 等于 value2 时执行的代码
    break;
  // 可以有任意多个 case 子句
  default:
    // 当 expression 不等于任何一个 case 值时执行的代码
}
  • expression

需要评估的表达式。

  • case valueN:与 expression

进行比较的值。

  • break

终止当前 case 的执行,并跳出 switch 语句。如果没有 break,程序将继续执行下一个 casedefault 子句(这称为“贯穿”现象)。

  • default

可选的默认子句,当 expression 不匹配任何 case 时执行。

示例 1:基本使用

const fruit = "apple";

switch (fruit) {
  case "banana":
    console.log("I am a banana.");
    break;
  case "apple":
    console.log("I am an apple.");
    break;
  case "orange":
    console.log("I am an orange.");
    break;
  default:
    console.log("Unknown fruit.");
}
// 输出: I am an apple.

示例 2:没有 break 的情况(贯穿)

const grade = "B";

switch (grade) {
  case "A":
    console.log("Excellent!");
    // 注意这里没有 break
  case "B":
    console.log("Good job!");
    // 注意这里没有 break
  case "C":
    console.log("You passed.");
    break;
  default:
    console.log("Failed.");
}
// 输出:
// Good job!
// You passed.

由于 case "A" 后没有 break,当 grade"B" 时,它不仅会执行 case "B" 的代码,还会继续执行 case "C" 的代码,直到遇到 breakswitch 语句结束。

示例 3:使用表达式和字符串比较

switch 语句中的 expression 可以是任何返回值的表达式,而不仅仅是变量。

const day = new Date().getDay();

switch (day) {
  case 0:
    console.log("Today is Sunday.");
    break;
  case 1:
    console.log("Today is Monday.");
    break;
  case 2:
    console.log("Today is Tuesday.");
    break;
  case 3:
    console.log("Today is Wednesday.");
    break;
  case 4:
    console.log("Today is Thursday.");
    break;
  case 5:
    console.log("Today is Friday.");
    break;
  case 6:
    console.log("Today is Saturday.");
    break;
}

示例 4:使用 default 子句

const color = "purple";

switch (color) {
  case "red":
    console.log("Color is red.");
    break;
  case "blue":
    console.log("Color is blue.");
    break;
  default:
    console.log("Color is not red or blue.");
}
// 输出: Color is not red or blue.

注意事项

1、严格相等比较:switch 语句使用严格相等(===)来比较 expressioncase 值。

2、数据类型:确保 expressioncase 值的数据类型相同,以避免意外的比较结果。

3、可读性:对于多个条件判断,switch 语句通常比嵌套 if-else 语句更清晰。

4、性能:在大多数情况下,switch 语句的性能略优于多个 if-else 语句,尤其是在处理大量条件时。

通过理解和使用 switch 语句,你可以编写更简洁、更易读的代码,同时提高代码的可维护性。

本文地址:https://www.tides.cn/p_js-switch

标签: 前端教程