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

使用&&运算符时,为何我的条件判断返回'false'?

问题解答

核心原因

&& 是JavaScript中的逻辑与运算符,它的规则是:只有当左右两侧的表达式同时为true时,整个条件表达式的结果才为true。而一个变量在同一时刻只能持有一个值,不可能同时等于0和1,所以i == 0 && i == 1这个条件永远无法成立,必然返回false,最终执行else分支输出'false'。

关于var i = 01的情况

在JavaScript非严格模式下,以0开头的数字字面量会被解析为八进制数,八进制的01对应的十进制值就是1,所以这个变量本质上和i=1是同一个值,i==0依然是false,条件自然还是不成立。

补充:逻辑与的短路特性

当&&左侧的表达式i==0已经是false时,JavaScript会直接判定整个条件为false,不会再去计算右侧的i==1,这也是为什么这个条件永远走不到true分支的原因之一。

如果你的需求是判断i等于0或者等于1,应该使用逻辑或运算符||,示例代码:

let i = 1;
if (i == 0 || i == 1) {
  console.log('true');
} else {
  console.log('false');
}

此时只要i的值是0或1,就会输出'true'。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 19:35:38