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

为何JavaScript代码中的条件判断始终为true?

为什么你的条件判断始终为true?

嘿,这是个很常见的新手误区,我来给你拆解清楚问题出在哪!

先看你写的条件:

if (qix === 'a' || 'b' || 'c')

JavaScript里的逻辑或运算符||是依次判断每个操作数的真假性:只要遇到第一个「真值(truthy)」,就会直接返回这个值,整个表达式的结果也就变成true。

这里的核心问题是,你只把qix === 'a'写成了完整的比较条件,而'b'和'c'是单独的非空字符串——在JS里,非空字符串属于真值。不管qix是什么值,当qix === 'a'为false时,||会继续判断下一个操作数'b',因为它是真值,整个条件直接就变成true了,后面的'c'甚至都不会被判断到。

正确的写法应该是这样:

你需要给每个值都写完整的比较逻辑:

if (qix === 'a' || qix === 'b' || qix === 'c') {
  console.log('condition ok!! now it works')
}

或者用更简洁的ES6+写法,借助数组的includes方法:

if (['a', 'b', 'c'].includes(qix)) {
  console.log('condition ok!! even cleaner')
}

这样当qix是'z'的时候,所有比较都会返回false,条件就不会成立啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:14:33