JS中的 switch case 语句详解

在JavaScript中,switch case是一种用于选择多个不同代码块中的一种执行路径的控制流语句。在某些情况下,switch case语句比使用多个if else语句更加清晰和简洁。本文将详细介绍switch case语句的用法、语法规则和注意事项。
语法结构
switch case语句由switch关键字、一个需要检查的表达式和多个case分支组成,每个分支包含一个case关键字后跟一个需要匹配的值,以及该值匹配时需要执行的代码块。另外,还可以使用default分支来处理没有任何case匹配成功的情况。
switch (表达式) {
case 值1:
// 如果表达式等于值1,则执行这里的代码
break; // 可选的,用于退出 switch 语句
case 值2:
// 如果表达式等于值2,则执行这里的代码
break;
// 更多 case 分支可以继续添加
default:
// 如果没有任何 case 匹配成功,则执行这里的代码
}
switch关键字后跟一个表达式,该表达式的值会与case中的值进行比较。case关键字后跟一个需要匹配的值,如果表达式的值与case中的值相等,则执行对应的代码块。break关键字用于跳出switch语句,如果省略break,则会执行匹配成功的case后的所有代码块,直到遇到break或结束switch语句为止。default关键字用于处理没有匹配的情况,一般放在switch语句的最后。
示例
let day = new Date().getDay();
let dayString;
switch (day) {
case 0:
dayString = "Sunday";
break;
case 1:
dayString = "Monday";
break;
case 2:
dayString = "Tuesday";
break;
case 3:
dayString = "Wednesday";
break;
case 4:
dayString = "Thursday";
break;
case 5:
dayString = "Friday";
break;
case 6:
dayString = "Saturday";
break;
default:
dayString = "Invalid day";
}
console.log(`Today is ${dayString}.`);
在这个示例中,我们根据当前日期的数字表示来判断今天是星期几,并输出相应的字符串。
注意事项
switch case语句是严格相等(===)比较,因此比较的值必须类型和数值都相等才会匹配成功。如果需要进行宽松相等比较,可以考虑使用if else语句。- 每个
case分支结束时需要加上break语句,以防止执行其他不必要的代码块。 - 可以将多个
case分支合并到一起执行,例如:
switch (day) {
case 0:
case 6:
dayString = "Weekend";
break;
default:
dayString = "Weekday";
}
在上面的示例中,星期天和星期六的case可以合并为同一个执行路径。
default分支并不是必需的,如果没有特殊情况要处理,可以不写default。
总结
通过本文的介绍,我们了解了switch case语句在JavaScript中的用法和语法规则。它是一种非常方便的多重条件判断语句,可以根据不同的情况执行不同的代码块,使代码更加清晰和易读。在实际开发中,适当地运用switch case可以提高代码的可维护性和可读性。
极客笔记