JavaScript switch 语句
                           
天天向上
发布: 2025-02-25 22:48:26

原创
987 人浏览过

JavaScript switch 语句

switch 语句是另一个用于多条件判断的控制流语句,它的作用是根据一个变量的值来执行不同的代码块。相比 if...else if...else 语句,switch 语句对于多个不同条件的判断来说更简洁、更易读。

基本语法

switch (expression) {
    case value1:
        // 如果 expression 的值与 value1 匹配,执行这部分代码
        break;
    case value2:
        // 如果 expression 的值与 value2 匹配,执行这部分代码
        break;
    case value3:
        // 如果 expression 的值与 value3 匹配,执行这部分代码
        break;
    default:
        // 如果 expression 的值与所有 case 都不匹配,执行这部分代码
}

示例:基本的 switch 语句

let day = 2;
switch (day) {
    case 1:
        console.log("今天是星期一");
        break;
    case 2:
        console.log("今天是星期二");
        break;
    case 3:
        console.log("今天是星期三");
        break;
    default:
        console.log("无效的日期");
}

在这个例子中,switch 根据 day 的值来匹配对应的 case。如果 day 的值为 2,则输出“今天是星期二”。如果没有任何 case 匹配 day 的值,则执行 default 部分。

break 语句

break 语句用于在 case 匹配后退出 switch 语句。如果没有 break,会继续执行下一个 case,这就是所谓的“穿透(fall through)”。

let fruit = "apple";

switch (fruit) {
    case "apple":
        console.log("这是苹果");
        break;
    case "banana":
        console.log("这是香蕉");
        break;
    case "orange":
        console.log("这是橙子");
        break;
    default:
        console.log("未知的水果");
}

如果 fruit"apple",会输出 "这是苹果" 并停止继续执行;如果没有 breakswitch 会继续检查其他的 case,直到找到匹配的 case 或到达 default

没有 break 的穿透行为

如果不使用 breakswitch 会继续执行下一个 case 代码块,直到遇到 break 或者结束 switch 语句。

let color = "red";

switch (color) {
    case "red":
        console.log("红色");
    case "green":
        console.log("绿色");
    case "blue":
        console.log("蓝色");
    default:
        console.log("未知颜色");
}

输出:

红色
绿色
蓝色
未知颜色

这里,color 的值是 "red",所以 console.log("红色") 会首先执行,但由于没有 break,它会继续执行后面的 case 代码块,直到最后执行 default

switch 与数据类型

switch 语句的比较是 严格比较(即 ===),这意味着 switch 语句会考虑数据类型,所以只有 expressioncase 的值 类型和数值都相同,才会匹配。

let x = 1;
switch (x) {
    case "1":  // 字符串类型
        console.log("这是字符串 1");
        break;
    case 1:    // 数字类型
        console.log("这是数字 1");
        break;
    default:
        console.log("没有匹配的值");
}

输出:

这是数字 1

在这个例子中,虽然 x 的值是 1,但是 switch 语句会严格检查类型。case "1" 是字符串,而 x 是数字,因此没有匹配 case "1",最终匹配的是 case 1


总结

  • switch 语句用于根据一个变量的值来执行不同的代码块。
  • 它比多个 if...else if...else 语句更简洁,尤其适合条件分支较多的情况。
  • case 后的值会严格比较(即 ===),因此数据类型必须一致才能匹配。
  • break 用于退出 switch 语句,否则会继续执行后续的 case,直到结束或遇到 break
  • default 用于处理没有匹配到任何 case 时的默认情况。

更多详细内容请关注其他相关文章!

发表回复 0

Your email address will not be published. Required fields are marked *