短路求值是JavaScript中&&和||根据左操作数布尔值决定是否执行右操作数的机制:&&在左为falsy时返回左、不执行右;||在左为truthy时返回左、跳过右。

短路求值(Short-circuit Evaluation)是 JavaScript 中逻辑运算符 && 和 || 的核心行为:它们不会盲目计算两个操作数,而是根据左操作数的布尔值,**决定是否执行右操作数**。
短路求值是怎么工作的?
&&(逻辑与):如果左操作数为 falsy(如 false、0、""、null、undefined、NaN),整个表达式直接返回左操作数,**不执行右操作数**;只有左为 truthy 时,才返回右操作数(无论真假)。
||(逻辑或):如果左操作数为 truthy,整个表达式直接返回左操作数,**跳过右操作数**;只有左为 falsy 时,才返回右操作数。
这种“够了就停”的机制就是“短路”——像电路一样,一旦结果确定,后续支路就不再通电。
立即学习“Java免费学习笔记(深入)”;
用 || 设置默认值
这是最常用也最安全的默认值写法,尤其适合处理可能为 undefined 或 null 的参数或配置项。
const name = user.name || '匿名用户'; —— 若 user.name 是 undefined 或空字符串,就用默认名 function greet(msg) { msg = msg || '你好'; console.log(msg); }
⚠️注意:它对所有 falsy 值都生效,所以若你希望 0 或 false 也被当作有效值,就得改用空值合并操作符 ??(ES2020):user.count ?? 0。
用 && 安全访问嵌套属性或条件执行
避免因中间某层为 null 或 undefined 导致报错 Cannot read property 'x' of undefined。
const city = user && user.profile && user.profile.address && user.profile.address.city; —— 写法略长,但兼容老环境 loading && showLoadingSpinner(); —— 只有 loading 为真时才调用函数,简洁又安全 isAdmin && renderAdminPanel(); —— 权限控制的一行写法
组合使用实现更灵活的逻辑控制
把 && 和 || 搭配起来,可以写出语义清晰、无 if 的条件逻辑。
const statusText = (isSuccess && '成功') || (isError && '失败') || '进行中'; const displayName = (user.nickName || user.fullName || user.email).trim() || '未知用户';
这类写法在 React 渲染逻辑、配置合并、API 响应处理中非常常见,既紧凑又可读。
基本上就这些。短路求值不是炫技,而是 JavaScript 理解数据真值(truthiness)和运算符行为的基础。用熟了,代码会更轻、更稳、更像人话。
以上就是什么是短路求值_javascript中逻辑运算符的妙用有哪些?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1542478.html
微信扫一扫
支付宝扫一扫