什么是JavaScript中的条件语句_如何使用if和switch进行逻辑判断?

JavaScript条件语句核心是if和switch:if用于真假判断与多分支,支持else if/else;switch适合固定值匹配,需break防穿透且用===比较;选择依据是判断性质——范围/布尔用if,离散值用switch;三元运算符、&&、||、??可简化简单逻辑。

JavaScript中的条件语句是用来根据不同的条件执行不同代码块的语法结构,核心是ifswitch,它们让程序具备“判断能力”,能响应数据变化或用户行为。

if语句:最基础的真假判断

if语句检查一个表达式是否为真(truthy),如果是,就执行对应代码块。它支持else ifelse来处理多分支情况。

  • 单个条件:if (age >= 18) { console.log("成年人"); }
  • 多条件链:if (score >= 90) { ... } else if (score >= 80) { ... } else { ... }
  • 注意:JavaScript中0""nullundefinedNaNfalse为falsy,其余多数值为truthy
  • 建议用===代替==避免隐式类型转换带来的意外结果

switch语句:适合多个固定值的匹配

当需要根据某个变量的**确切值**(如字符串、数字、常量)做多种分支处理时,switch比一长串else if更清晰、易读。

  • 基本结构:switch (day) { case "Mon": console.log("周一"); break; case "Tue": ... default: ... }
  • 每个case后必须加break,否则会“穿透”执行后续case(这是常见错误)
  • default不是必须的,但强烈建议加上,用于兜底处理未覆盖的情况
  • 注意:switch使用严格相等(===)比较,不会做类型转换

什么时候选if,什么时候选switch?

关键看判断依据的性质:

  • if:判断范围(如x > 100)、布尔状态(isLoading)、复杂逻辑组合(a && !b || c
  • switch:匹配几个明确的离散值(如按钮类型"save"/"cancel"/"delete"、HTTP状态码200/404/500
  • 性能上现代引擎对两者优化都很成熟,不必过度纠结;可读性和维护性才是首要考虑

小技巧:三元运算符和逻辑运算符也能做简单判断

对于单行赋值或简单分支,可以替代短小的if

  • 三元运算符:const message = score >= 60 ? "及格" : "不及格";
  • 逻辑与(&&)常用于“有值才执行”:user && user.name && console.log(user.name);
  • 逻辑或(||)或空值合并(??)适合设置默认值:const name = userInput || "匿名";const name = userInput ?? "匿名";
  • 注意:这些写法不宜嵌套过深,否则可读性下降,该用if还是得用