js实现switch
switch语句的基本语法
在JavaScript中,switch语句用于根据不同的条件执行不同的代码块。其基本语法如下:
switch(expression) {
case value1:
// 代码块1
break;
case value2:
// 代码块2
break;
default:
// 默认代码块
}
expression是要评估的表达式,case后面的value是与expression比较的值。如果匹配,则执行对应的代码块。break语句用于跳出switch块,防止继续执行下一个case。default是可选的,用于处理没有匹配的情况。

使用示例
let day = 3;
let dayName;
switch(day) {
case 1:
dayName = 'Monday';
break;
case 2:
dayName = 'Tuesday';
break;
case 3:
dayName = 'Wednesday';
break;
case 4:
dayName = 'Thursday';
break;
case 5:
dayName = 'Friday';
break;
case 6:
dayName = 'Saturday';
break;
case 7:
dayName = 'Sunday';
break;
default:
dayName = 'Invalid day';
}
console.log(dayName); // 输出: Wednesday
多个case共用代码块
多个case可以共享同一个代码块:
let fruit = 'apple';
let message;
switch(fruit) {
case 'apple':
case 'pear':
case 'banana':
message = 'This is a common fruit';
break;
case 'durian':
message = 'This is an exotic fruit';
break;
default:
message = 'Unknown fruit';
}
console.log(message); // 输出: This is a common fruit
严格比较
switch语句使用严格比较(===),值和类型都必须匹配:

let num = '1';
switch(num) {
case 1:
console.log('Number 1');
break;
case '1':
console.log('String "1"');
break;
default:
console.log('Unknown');
}
// 输出: String "1"
替代if-else的复杂条件
switch可以替代多个if-else条件,使代码更清晰:
let score = 85;
let grade;
switch(true) {
case score >= 90:
grade = 'A';
break;
case score >= 80:
grade = 'B';
break;
case score >= 70:
grade = 'C';
break;
case score >= 60:
grade = 'D';
break;
default:
grade = 'F';
}
console.log(grade); // 输出: B
注意事项
忘记break会导致case穿透,执行后续case的代码:
let x = 1;
switch(x) {
case 1:
console.log('One');
// 缺少break
case 2:
console.log('Two');
break;
default:
console.log('Default');
}
// 输出: One Two
default不一定要放在最后,但通常这样做更符合习惯。无论default位置如何,它总是在没有匹配case时执行。






