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

为何调用JavaScript函数solveThis(2,3)返回true而非false?

为什么传入2和3时solveThis函数返回true?

问题出在第一个if条件的逻辑解析上:

if (i || j === 1) {
  return true
}

这里要注意JavaScript的运算符优先级——===的优先级远高于||,所以这个条件会被引擎解析成 (i) || (j === 1),而不是你可能误以为的 (i || j) === 1。

当你传入i=2时,2在JavaScript的布尔判断中属于真值(truthy)(所有非0、非null、非undefined、非空字符串等的值都会被判定为true)。而||是逻辑或运算符,只要左侧表达式为真,整个条件就直接成立,不会再去计算右侧的j === 1。

所以第一个if条件直接满足,函数立刻返回true,完全不会进入后面的else if或else分支。

如果你的本意是判断i等于1 或者 j等于1,需要把条件修正为i === 1 || j === 1,否则单独的i会把所有非假值都纳入判断范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 08:23:12