JavaScript条件语句中,if适用于布尔判断、范围比较和逻辑组合,switch适用于多个固定值的严格相等匹配;if支持else if链,switch需用break防穿透且建议加default。
JavaScript条件语句用来根据不同的条件执行不同的代码块,最常用的是 if 和 switch。它们不是互斥的,而是适用场景不同:简单真假判断用 if,多个固定值分支判断用 switch。
if 适合做真假判断、比较运算、逻辑组合,也支持 else if 和 else 多分支结构。
if (条件),条件为真时执行大括号内代码a > 5、str === "hello"、!isEmpty
= 误写成相等 == 或 ===,尤其在条件里示例:
let score = 85;
if (score >= 90) {
console.log("优秀");
} else if (score >= 80) {
console.log("良好");
} else if (score >= 60) {
console.log("及格");
} else {
console.log("不及格");
}
switch 更适合判断一个变量是否等于若干个具体值(如状态码、选项、枚举),它基于严格相等 === 匹配,不进行类型转换。
case 后要跟 break,否则会“穿透”执行后续 case(这是常见 bug 来源)default 相当于 else,建议始终加上,增强健壮性示例:
let day = 3;
switch (day) {
case 1:
console.log("周一");
break;
case 2:
console.log("周二");
break;
case 3:
console.log("周三");
break;
default:
console.log("无效日期");
}
选对语句能让代码更清晰、易维护。
x > 10 && x )、带逻辑运算、需要计算的条件 → 用 if
switch
handlers[status]())新手容易踩坑的地方,提前避开能少调试半小时。
if (x = 5) 是赋值,永远为真 —— 应该写 if (x === 5)
switch 中漏写 break 会导致多个 case 连续执行null、undefined、0、""、false 在 if 中都转为 false(即“falsy”值),注意区分 == 和 ===