首页 > web前端 > js教程 > 正文

javascript中的短路求值是什么_如何利用它?

夢幻星辰
发布: 2025-12-16 15:18:08
原创
861人浏览过
短路求值是JavaScript中&&和||的特性:左侧操作数足以确定结果时,右侧不执行;||用于提供默认值(对falsy值返回右侧),&&用于安全访问(仅truthy时执行右侧);但需注意0/""/false等合法falsy值被||误覆盖,推荐用??和?.替代。

javascript中的短路求值是什么_如何利用它?

短路求值是 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,会被 || 误覆盖:

晓象AI资讯阅读神器
晓象AI资讯阅读神器

晓象-AI时代的资讯阅读神器

晓象AI资讯阅读神器 72
查看详情 晓象AI资讯阅读神器

立即学习Java免费学习笔记(深入)”;

  • const count = 0 || 10; → 得到 10(但 0 可能是有效计数)
  • 更稳妥的方式:const count = userInput != null ? userInput : 10; 或使用空值合并操作符 ??(ES2020+):const count = userInput ?? 10;

配合可选链(?.)和 ?? 更现代地替代短路

短路求值依然有用,但在处理对象嵌套和空值时,新语法更精准:

  • user?.profile?.avataruser && user.profile && user.profile.avatar 更简洁安全
  • user.name ?? "未知" 明确只在 nullundefined 时回退,不会吞掉 0 或 ""

基本上就这些。短路求值不复杂但容易忽略细节,用对了能写出更简洁、更健壮的代码。

以上就是javascript中的短路求值是什么_如何利用它?的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号