短路求值是JavaScript中&&和||的特性:左侧操作数足以确定结果时,右侧不执行;||用于提供默认值(对falsy值返回右侧),&&用于安全访问(仅truthy时执行右侧);但需注意0/""/false等合法falsy值被||误覆盖,推荐用??和?.替代。

短路求值是 JavaScript 中逻辑运算符 && 和 || 的行为特性:当左侧操作数已足以确定整个表达式的真假时,右侧操作数**不会被计算**。这个机制既提升性能,也常被用来简化条件逻辑和提供默认值。
用 || 提供默认值
当左侧为“假值”(falsy:false、0、""、null、undefined、NaN)时,|| 返回右侧值;否则返回左侧值。这很适合给变量设置后备值。
-
const name = userInput || "匿名用户";—— 如果userInput是空字符串或 undefined,就用默认名 -
const config = options || {};—— 避免对 null/undefined 调用属性时报错
用 && 做安全的条件访问
当左侧为“真值”(truthy)时,&& 才执行并返回右侧;否则直接返回左侧(且不执行右侧)。常用于防止访问空对象属性。
-
user && user.profile && user.profile.avatar—— 确保每层都存在再取 avatar -
isLoggedIn && renderDashboard();—— 只有登录成功才渲染面板(右侧是函数调用)
注意陷阱:别混淆“真假值”和“是否定义”
0、""、false 本身是合法值,但它们属于 falsy,会被 || 误覆盖:
标签: javascript java
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~