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

if语句中&&与||混合使用的安全性及运算优先级咨询

逻辑运算符优先级:&& 比 || 优先级更高吗?

你的写法会出现意外结果,确实存在仅cond_B === 'May'就触发条件的情况——因为在JavaScript里,&&的优先级确实比||高,你的原代码会被引擎自动解析成:

if ((cond_A === 'Bradley' && cond_B === 'April') || cond_B === 'May') { ... }

意思是:要么满足「cond_A是Bradley且cond_B是April」,要么只要cond_B是May就触发,这和你想要的嵌套if逻辑完全不符。

要实现和嵌套if一致的效果,必须给cond_B的两个判断加上括号,明确优先级:

if (cond_A === 'Bradley' && (cond_B === 'April' || cond_B === 'May')) { ... }

这样引擎会先执行括号里的||判断,再和前面的&&结合,逻辑就和嵌套if完全一致了:只有cond_A是Bradley,且cond_B是April或May时才进入代码块。

如果想更简洁,还可以用数组的includes方法替代多个||判断:

if (cond_A === 'Bradley' && ['April', 'May'].includes(cond_B)) { ... }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 16:47:03