javascript条件语句怎么写_如何使用if和switch

JavaScript条件语句中,if适用于布尔判断、范围比较和逻辑组合,switch适用于多个固定值的严格相等匹配;if支持else if链,switch需用break防穿透且建议加default。

JavaScript条件语句用来根据不同的条件执行不同的代码块,最常用的是 ifswitch。它们不是互斥的,而是适用场景不同:简单真假判断用 if,多个固定值分支判断用 switch

if 语句:处理布尔逻辑和范围判断

if 适合做真假判断、比较运算、逻辑组合,也支持 else ifelse 多分支结构。

  • 基本写法:先写 if (条件),条件为真时执行大括号内代码
  • 条件可以是表达式,比如 a > 5str === "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 语句:匹配多个确定值

switch 更适合判断一个变量是否等于若干个具体值(如状态码、选项、枚举),它基于严格相等 === 匹配,不进行类型转换。

  • 每个 case 后要跟 break,否则会“穿透”执行后续 case(这是常见 bug 来源)
  • default 相当于 else,建议始终加上,增强健壮性
  • case 值可以是数字、字符串、常量,但不能是变量或表达式

示例:

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

if 和 switch 怎么选?看这几点

选对语句能让代码更清晰、易维护。

  • 判断范围(如 x > 10 && x )、带逻辑运算、需要计算的条件 → 用 if
  • 判断某个值是否等于几个固定选项(如菜单类型、HTTP 状态码、枚举值)→ 优先考虑 switch
  • 现代 JS 中,简单映射也可用对象字面量或 Map 替代 switch,更函数式(比如 handlers[status]()
  • 性能上差异极小,不用刻意优化,可读性和意图表达更重要

常见陷阱和注意事项

新手容易踩坑的地方,提前避开能少调试半小时。

  • if (x = 5) 是赋值,永远为真 —— 应该写 if (x === 5)
  • switch 中漏写 break 会导致多个 case 连续执行
  • nullundefined0""falseif 中都转为 false(即“falsy”值),注意区分 =====
  • 嵌套太深(比如 if 里套 if 再套 if)会影响可读性,可考虑提前 return 或拆成函数