JavaScript中&&返回实际参与运算的操作数原始值:若第一个操作数falsy则返回它,否则返回第二个操作数。

JavaScript 中逻辑与(&&)不一定返回第一个,也不一定返回第二个,它返回的是实际参与运算的某个操作数的原始值,具体取决于它们的真值性(truthy/falsy)。
关键看第一个操作数:
- 如果第一个操作数是 falsy(如
false、0、""、null、undefined、NaN),&&直接返回第一个操作数的原值,不计算第二个; - 如果第一个操作数是 truthy,则返回第二个操作数的原值(无论它是 truthy 还是 falsy)。
也就是说,`a && b` 的结果是:
- 当 `a` 是 falsy → 返回 `a`
- 当 `a` 是 truthy → 返回 `b`
例如:
立即学习“Java免费学习笔记(深入)”;
`false && "hello"` → 返回 `false`(第一个 falsy)
`0 && 5` → 返回 `0`
`"ok" && null` → 返回 `null`(因为 `"ok"` 是 truthy,所以取第二个)
`[] && 42` → 返回 `42`(空数组是 truthy)
它不是“选第一个或第二个”的固定规则,而是按短路逻辑决定哪个值被求值并返回——本质上返回的是**被最终使用的那个操作数本身**。


















