美文网首页
JavaScript 可选链 “?.”:让你的代码更安全、更优雅

JavaScript 可选链 “?.”:让你的代码更安全、更优雅

作者: 可乐他爸 | 来源:发表于2025-03-04 23:21 被阅读0次

一、为什么需要可选链 ?.

在JavaScript中,访问深层嵌套对象属性时,开发者常常面临“中间属性不存在”的崩溃风险。例如:

const user = {};  
console.log(user.address.street); // 报错:Cannot read property 'street' of undefined  

传统解决方案需要逐层判断(如user.address && user.address.street),但代码冗长且重复。

二、可选链?.的语法与作用

可选链操作符?.允许在访问属性时,若左侧对象为nullundefined,则直接返回undefined而非报错。

console.log(user?.address?.street); // 安全返回undefined  

三、?.操作符的7大核心用法

1. 安全导航对象属性

// 传统写法
const name = user && user.profile && user.profile.name;

// 可选链时代
const name = user?.profile?.name;

2. 防崩溃函数调用

// 安全调用可能不存在的方法
api.getData?.().then(...);

3. 数组元素安全访问

// 传统危险操作
const firstItem = arr[0].property; // 可能报错

// 安全访问
const firstItem = arr?.[0]?.property;

4. 配合空值合并运算符??

const config = user?.settings?.config ?? {};

5. 正则表达式匹配防护

const match = 'string'.match(/pattern/);
const result = match?.[1] ?? 'default';

6. 动态属性访问

const prop = 'firstName';
const value = user?.info?.[prop];

7. 与TypeScript的完美结合

interface User {
  profile?: {
    email?: string;
  }
}

const email = user?.profile?.email; // 自动类型

相关文章

  • javascript的N大优雅写法

    日常代码的堆砌罗列很不优雅,下面看看如何优雅 1、可选链“?." 这是一种访问嵌套对象属性的安全方式,即使中间属性...

  • 代码优化

    参考: 复杂判断的优雅写法简单几步让你的 JS 写得更漂亮优化 if-else 代码结构 一、复杂判断的优雅写法8...

  • iOS -如何让你写的代码更规范

    iOS -如何让你写的代码更规范 iOS -如何让你写的代码更规范

  • Swift语法基础之断言

    上篇文章谈到了可选,可选可以让你判断值是否存在,你可以在代码中优雅地处理值缺失的情况。然而,在某些情况下,如果值缺...

  • 区块链让生活更安全

    有需要数字资产交易所开发、(币币交易/场外OTC交易/场外C2C交易所) 区块链IM社交软件、(币圈微/区块链社交...

  • 区块链如何确保交易安全?

    区块链常常被称之为不可篡改的账本,能保护我们的数字资产安全和交易安全。那区块链是如何确保交易安全的呢?为了让大家更...

  • 三亚峰会 | 扬眉吐气的区块链,大放异彩的EOS !

    关注EOS Alliance寻找志同道合的伙伴 当未来区块链让人们的交易方式变得更安全、更尊重隐私,甚至影响、决定...

  • JavaScript修饰器-让代码更干净

    一般在JavaScript中为了让部分代码延迟执行,一想起的自然是 setTimeout,比如: 这种代码或许你不...

  • JavaScript检测之basevalidate.js

    上篇文章「JavaScript检测原始值、引用值、属性」中涉及了大量有用的代码范例,为了让大家更方便的使用这些代码...

  • 2018-11-13 HTML中的JavaScript