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

JavaScript中1&&5返回5而非1,逻辑与&&运算符规则是怎样的?

JavaScript 逻辑与(&&)的返回值规则

你对逻辑与的返回规则记忆存在偏差,JavaScript 中的逻辑运算符采用短路求值逻辑,且不会强制返回布尔类型,而是直接返回参与运算的原始操作数:

  • && 逻辑与求值逻辑:从左到右依次校验每个操作数的布尔值,遇到第一个假值就直接返回该值,终止后续运算;如果所有操作数都是真值,则返回最后一个真值
  • || 逻辑或的求值逻辑刚好相反:从左到右遇到第一个真值就直接返回该值,所有操作数都是假值时才返回最后一个假值

回到你的示例代码:

const one = 1;
const two = 5;
console.log(one && two);

运行时首先判断one的布尔值为true,满足逻辑与继续运算的条件,因此会继续校验下一个操作数two,由于已经是最后一个真值,所以最终返回5。

常见误区提示:很多初学者会误以为逻辑运算符只能返回true/false布尔值,实际上只有当你将运算结果放入布尔判断上下文(比如if条件)、或者用Boolean()显式转换时,才会得到布尔值,运算符本身返回的是原始操作数的值。

你可以通过下面的示例快速巩固规则:

// 存在假值的场景
console.log(0 && 100); // 返回 0,第一个假值直接返回
console.log('' && 'hello'); // 返回空字符串
// 全为真值的场景
console.log(2 && 3 && 'test'); // 返回最后一个真值 'test'
// 对比逻辑或的返回结果
console.log(0 || 1 || 5); // 返回 1,第一个真值直接返回

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:54:00