LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

?. 和 ??:JS 这两个"小可爱"操作符,少写80%的 if 判断!

admin
2025年5月28日 14:52 本文热度 62

作为前端开发者,我们每天都在与各种数据打交道。判空、取值、赋默认值…这些看似简单的操作,却经常让我们的代码充满了冗长的 if-else 判断。

🎯 可选链操作符 (?.) - 告别深层嵌套的噩梦

传统写法的痛点

还记得那些让人头疼的深层对象访问吗?

// 😩 传统写法:层层判断
if (user && user.profile && user.profile.address && user.profile.address.city) {
 console.log(user.profile.address.city);
}

// 😩 或者使用 try-catch
try {
 const city = user.profile.address.city;
 console.log(city);
} catch (error) {
 console.log('数据不存在');
}

可选链的优雅解决方案

// 😍 使用可选链:一行搞定!
console.log(user?.profile?.address?.city);

// 如果任何一层为 null 或 undefined,直接返回 undefined
// 不会抛出错误!

🎯 空值合并操作符 (??) - 智能默认值设置

与 || 操作符的区别

这是很多开发者容易混淆的地方:

📊 写法对比

让我们看看使用这些操作符前后的代码对比:

传统写法:

现代写法:

🎨 最佳实践

1. 适度使用,避免过度链式调用

2. 结合解构赋值

const { 
  name = '默认名称'
  age = 0
  email 
} = user?.profile ?? {};

// 相当于
const name = user?.profile?.name ?? '默认名称';
const age = user?.profile?.age ?? 0;
const email = user?.profile?.email;

这两个"小可爱"操作符的引入,让 JavaScript 代码变得更加简洁和安全:可选链操作符 (?.) 解决了深层对象访问的问题,空值合并操作符 (??) 提供了更精确的默认值设置。


阅读原文:https://mp.weixin.qq.com/s/FBrkz74reWQRuI9szIWxBg


该文章在 2025/5/29 11:18:46 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved