javascript中&&返回第一个假值或最后一个操作数,||返回第一个真值或最后一个操作数,!始终返回布尔值;二者均短路求值且返回原值而非布尔值。

JavaScript 中逻辑运算符 不一定返回布尔值,它们返回的是参与运算的具体操作数本身,只是在布尔上下文中按真值(truthy)或假值(falsy)规则进行判断。
这个行为对 && 和 || 尤其明显;! 是例外——它总是返回布尔值。
逻辑与(&&)返回哪个操作数?
- 如果第一个操作数是 falsy(如
false、0、''、null、undefined、NaN),直接返回它,不计算第二个操作数(短路); - 如果第一个操作数是 truthy,则返回第二个操作数的原始值(无论真假)。
console.log(false && "hello"); // false
console.log(0 && 42); // 0
console.log("ok" && null); // null
console.log({} && []); // []
✅ 关键:
&&返回「第一个 falsy 值」,或「最后一个值」(当所有都 truthy 时)。
Alibabacloud Sdk Client Initialization For Java下载在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
逻辑或(||)返回哪个操作数?
- 如果第一个操作数是 truthy,直接返回它,跳过第二个操作数(短路);
- 如果第一个是 falsy,则返回第二个操作数的原始值。
console.log("hi" || "bye"); // "hi"
console.log(null || "default"); // "default"
console.log(0 || false || 7); // 7
✅ 关键:
||返回「第一个 truthy 值」,或「最后一个值」(当所有都 falsy 时)。
逻辑非(!)只返回布尔值
-
!总是先将操作数转为布尔值,再取反; -
!!常用于强制转布尔(例如!!0 → false,!!"a" → true)。
console.log(!"hello"); // false console.log(!0); // true console.log(!![]); // true
实际用途提示
-
||常用来提供默认值:const name = user.name || "anonymous"; -
&&常用于条件执行:isLoggedIn && renderDashboard(); - 链式使用很常见:
a && b && c返回第一个 falsy 值或c;a || b || c返回第一个 truthy 值或c。
不复杂但容易忽略
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











