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

JavaScript中数字使用逻辑运算符为何得到如下结果?

嘿,这问题问得太关键了!其实核心是JavaScript里的**短路求值(Short-circuit Evaluation)**机制,咱们一步步拆解你遇到的几个例子:

1. 先搞懂||(逻辑或)的短路规则

对于表达式a || b,JS会按顺序做两件事:

  • 先判断a是不是真值(truthy value)(简单说就是除了false、0、''、null、undefined、NaN之外的值,比如1、非空字符串、对象都是真值)
  • 如果a是真值,直接返回a,根本不会再去计算b——这就是“短路”的意思;只有当a是假值时,才会计算并返回b

对应你第一个例子:console.log(1||2)
1是典型的真值,所以直接返回1,控制台就输出1。

2. 再看&&(逻辑与)的短路规则

和||正好反过来,表达式a && b的逻辑是:

  • 先判断a是不是真值
  • 如果a是假值,直接返回a,短路不计算b;只有当a是真值时,才会继续计算并返回b

对应你第二个例子:console.log(1&&2)
1是真值,所以JS会继续计算右边的2,返回2,控制台输出2。

3. 最后看组合例子console.log(1||2,1&&2)

这里其实是两个独立的表达式作为console.log的参数,JS会分别对1||2和1&&2求值,得到1和2之后,把这两个结果一起输出,所以控制台会打印1 2。

简单总结一下:

  • ||是“找第一个真值”,找到就停
  • &&是“找第一个假值”,找不到就返回最后一个真值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:31:58