You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Switch函数问题:为何无法正确处理数值70?

问题分析与解决

你的switch写法逻辑错误,switch是拿括号内的表达式与每个case的值做**全等(===)**匹配的。

你写的代码里,switch(age)传入70后,会把70依次和每个case的值对比:

  • 第一个case是(age > 65),这个表达式计算后结果为true,实际就是在判断70 === true,显然不成立,所以直接走到了default分支。

修正方案一:调整switch的匹配逻辑

把switch的表达式改成true,让case里的条件表达式结果与true匹配:

let test = (age) => { 
  switch (true) { 
    case (age > 65): 
      console.log("High age") 
      break 
    default: 
      console.log("Low age") 
      break 
  } 
} 
test(70) // 输出 "High age"

修正方案二:改用if-else(更适合范围判断)

对于这种数值范围类的判断,if-else写法更直观,不容易出错:

let test = (age) => { 
  if (age > 65) {
    console.log("High age")
  } else {
    console.log("Low age")
  }
} 
test(70) // 输出 "High age"

内容的提问来源于stack exchange,提问作者Sparzza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 08:09:53