在JavaScript中,当我们需要根据不同的条件执行不同的代码块时,switch语句是一种常见且高效的选择。与多个if-else语句相比,switch语句在处理多个条件分支时往往更加清晰和高效。
基本语法
switch(expression) {
case value1:
// 代码块
break;
case value2:
// 代码块
break;
default:
// 默认代码块
}
穿透效应
switch语句中的break关键字用于阻止代码继续执行下一个case。如果省略break,会发生穿透效应,继续执行后续的case代码块,直到遇到break或结束。
let fruit = '苹果';
switch(fruit) {
case '苹果':
console.log('这是苹果');
// 缺少 break,会继续执行下一个 case
case '香蕉':
console.log('这是香蕉');
break;
case '橙子':
console.log('这是橙子');
break;
}
// 输出:
// 这是苹果
// 这是香蕉
严格比较
switch语句使用严格比较(===),意味着会比较值和类型。
let value = 5;
switch(value) {
case '5':
console.log('字符串5');
break;
case 5:
console.log('数字5'); // 这个会被执行
break;
}
多case操作
同一个代码块可以处理多个case:
let day = '周一';
switch(day) {
case '周一':
case '周二':
case '周三':
case '周四':
case '周五':
console.log('工作日');
break;
case '周六':
case '周日':
console.log('周末');
break;
default:
console.log('无效日期');
}
替代方案
对于复杂场景,有时使用对象字面量可能更简洁:
const actions = {
'add': (a, b) => a + b,
'subtract': (a, b) => a - b,
'multiply': (a, b) => a * b
};
let operation = 'add';
let result = actions[operation]?.(5, 3) ?? '未知操作';
console.log(result); // 输出:8
switch语句是JavaScript中处理多个条件分支的强大工具,合理使用可以使代码更加清晰和易于维护。
3万+

被折叠的 条评论
为什么被折叠?



