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

请问条件表达式s == 10 || 20与s == 10 || s == 20的区别是什么?

两个if条件的本质区别

先看你给出的代码:

let s = 10;

if(s == 10 || s == 20){
  console.log(s)
}

if( s == 10 || 20){
  console.log(s)
}

第一个条件 s == 10 || s == 20

这是标准的逻辑或判断,两边都是完整的相等比较表达式:

  • 只有当s的值等于10,或者等于20时,整个条件才会返回true,代码块才会执行。
  • 如果s是其他值(比如30、'abc'),这个条件会返回false,不会执行console.log。

第二个条件 s == 10 || 20

这个写法存在逻辑误区,JavaScript会按以下逻辑解析:

  • 逻辑或||的右侧是常量20,在JS的布尔判断里,非零的数字会被视为true。
  • 所以这个条件等价于(s == 10) || true,不管s是什么值,整个条件永远返回true,代码块一定会执行。

为什么测试时输出相同?

因为你测试时s = 10,第一个条件里s ==10为true,第二个条件里s==10也为true,所以两个if都执行了console.log。但如果换个值,比如s=30:

  • 第一个条件会返回false,不会输出;
  • 第二个条件依然返回true,会输出30。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 16:51:37