javascript中&&和||进行短路求值:&&遇第一个假值即返回,全真值时返回最右操作数;||遇第一个真值即返回,全假值时返回最右操作数,常用于默认值、安全访问和条件执行。

JavaScript 中的逻辑运算符 && 和 || 会进行短路求值:一旦结果已确定,就不再计算后续表达式。
&& 的短路行为
&& 运算符从左到右依次求值,遇到第一个“假值”(falsy)就立即返回它,不再执行右边的表达式。只有所有操作数都为真值(truthy),才返回最后一个操作数的值。
-
false && console.log('不会执行')→ 返回false,console.log不触发 -
0 && 'hello'→ 返回0 -
'a' && true && 42→ 返回42(全部为真值,返回最右)
|| 的短路行为
|| 同样从左到右求值,遇到第一个“真值”就立即返回它,跳过后续表达式。只有所有操作数都为假值,才返回最后一个操作数。
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
-
true || console.log('不会执行')→ 返回true,右侧不执行 -
null || 'fallback'→ 返回'fallback' -
undefined || 0 || 'ok'→ 返回'ok'
常见实用场景
短路求值常用于安全访问属性、提供默认值或条件执行。
- 提供默认值:
const name = user.name || 'Anonymous' - 安全调用方法:
user && user.profile && user.profile.getName() - 条件执行副作用:
isLoggedIn && showDashboard()(仅登录后调用) - 避免报错:
obj?.items?.length > 0 || (fetchItems(), false)(结合可选链更安全)
注意隐式类型转换
短路返回的是**原值**,不是布尔值。比如 0 || 'hi' 返回字符串 'hi',不是 true;'' && 123 返回空字符串 '',不是 false。判断真假依赖 JavaScript 的 falsy 值规则(false、0、''、null、undefined、NaN)。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










