如何使用 ECMAScript 2020 中的 optional chaining 优化代码

简介

ECMAScript 2020 增加了 optional chaining 这个操作符,可以使开发者在访问对象和数组属性时,避免了因为空值或 undefined 导致程序崩溃的问题。本篇文章将介绍如何使用 optional chaining 优化代码。

optional chaining 的语法

ECMAScript 2020 定义了可选链式操作符(optional chaining),可以用来简化访问链的判空操作。

  • 当访问对象属性或数组元素时可能会返回 undefined 或 null 值,此时再访问对象属性或数组元素将会抛出错误,导致程序运行失败;
  • 可选链式操作符(?.)可以在属性或数组不进行判空判断时不抛出错误,而是直接返回 undefined 值。
-- -- ------
----------

-- -- ------
-------------

optional chaining 的使用

1. 避免崩溃

当访问属性时,如果对象不存在,访问值将会返回 undefined 而不是抛出错误。

--- ---- - -----

--- ---- - ----------- -- ---------

------------ -- ---------

2. 可选调用

当对象比较复杂时,联合调用会变得十分复杂,而可选调用则非常方便。

--- ---- - -------------------------------------------------------

如果 document.querySelector('#id') 返回 null 或 undefined,则后面的 querySelector 不会执行,elem 的值将是 undefined。

3. 引用链中的可选链

可选链可以用多个问号组合起来,在引用链中使用。

--- ---- - ---

------ --------------------- -- -- ---------------------- ----

上面示例中,user 对象没有 address 属性,因此查询 user?.address 不会产生错误,他会返回 undefined 并停止执行。

示例代码

下面是一个使用 optional chaining 的示例代码:

----- ---- - -
  ----- ------
  ------ ------------------
  -------- -
    ----- ----------
    ------- ------------
    --------- -------
  -
--

----- -------- - -
  ----- -----------
  ------ ------------
  -------- ------------------- -- --------------------- -- ----------------------- - ----------------------- ------------------------ --------------------------- - --
--

在上面的代码中,我们使用了 optional chaining 进行判断 user 对象的属性是否存在,从而避免了因为空值或 undefined 导致程序崩溃的问题。

总结

在本篇文章中,我们介绍了如何使用 ECMAScript 2020 中的 optional chaining 优化代码,并提供了详细的语法及示例代码。使用 optional chaining 可以让我们更加方便和安全地访问对象和数组属性。在开发过程中,建议我们使用 optional chaining 进行代码优化,提高程序的健壮性和安全性。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/65b31538add4f0e0ffc2647a


猜你喜欢

  • Angular 11 中如何使用 @Input 和 @Output 传递数据

    Angular 11 中如何使用 @Input 和 @Output 传递数据 Angular 是一款流行且强大的前端框架,由于其模块化、组件化的设计思想,使得数据传递成为其中非常重要的一环。

    9 个月前
  • MongoDB 中的时间日期存储方式及使用技巧

    MongoDB是目前非常流行的NoSQL数据库,它可以方便地存储各种不同类型的数据,包括时间日期。但是,MongoDB中的时间日期存储方式有很多种,如何选择最适合的存储方式并有效地使用数据呢?本文将对...

    9 个月前
  • ECMAScript 2020:Promises.allSettled() 的使用方法

    在 ECMAScript 2020 中,我们迎来了一个新的 Promise 方法,它就是 Promise.allSettled()。这个方法提供了一种更加灵活的方式,来处理 Promise 数组中的多...

    9 个月前
  • 如何使用 Enzyme 对 React 组件进行全面测试

    在前端开发中,测试是必不可少的一部分。React 是一种流行的前端框架,而 Enzyme 则是一个用于 React 组件测试的工具库,可以帮助你快速、全面地测试 React 组件。

    9 个月前
  • 如何在 Serverless 框架下实现数据库连接池

    在 Serverless 架构模式下,使用数据库连接池来管理多个数据库连接将会非常重要。本文将介绍什么是 Serverless 架构以及什么是数据库连接池,如何在 Serverless 架构下实现数据...

    9 个月前
  • 使用 ES9 中的 BigInt 型数据解决 JavaScript 数字精度问题

    JavaScript 是一种弱类型语言,对于数字类型的数据处理比较困难,尤其是在处理大数时。由于 JavaScript 采用 IEEE 754 标准来表示数字,所以在处理过大或过小的数字时,就会出现精...

    9 个月前
  • 遇到 React 报错: Element type is invalid: expected a string ,该如何解决?

    在使用 React 进行前端开发的过程中,可能会遇到 Element type is invalid: expected a string 这样的报错信息。这个错误提示意味着在使用 React.cre...

    9 个月前
  • Docker-CE 安装与卸载脚本 Bash 命令

    前言 Docker 是当前很火的一个容器化方案,它可以让应用离开开发环境,快速、简单地在生产环境中运行。Docker 可以大大提高我们的开发效率,降低应用程序的运行成本。

    9 个月前
  • PM2 教程:如何在应用运行时执行脚本?

    什么是 PM2? PM2 是一个包括进程管理、负载均衡、日志管理等多种功能的 Node.js 进程管理工具。它可以帮助我们简化 Node.js 应用的管理流程,让我们更加高效地运维我们的应用。

    9 个月前
  • Tailwind 如何优化样式文件

    Tailwind 是一种基于原子类的 CSS 框架,它提供了大量的预定义类,使得我们可以快速地构建出页面布局和样式。但是,随着项目的不断增大,Tailwind 的样式文件也会变得越来越大,可能会导致页...

    9 个月前
  • 解决 Mocha 测试时出现 “TypeError:无法读取未定义的属性” 错误的方法

    在前端开发中,Mocha 是一个常用的测试框架,它可以帮助开发者快速、方便地编写和运行测试用例。但是,有时候在执行测试用例时,可能会遇到 “TypeError:无法读取未定义的属性” 错误,这会导致测...

    9 个月前
  • 布局利器 ——CSS Grid(上)

    随着前端技术的不断发展,布局技术也在不断进化,越来越多的布局方案出现。CSS Grid 布局是一种全新的布局方式,相比传统的布局方式,它的优势非常明显,比如更加灵活,更加快速,更加易于维护。

    9 个月前
  • 优化 Hapi 应用程序的数据库查询

    在开发 Hapi 应用程序时,数据库查询是一个必不可少的环节。然而,如果不加优化的话,数据库查询可能会导致应用程序变慢甚至崩溃。在本文中,我们将介绍一些优化 Hapi 应用程序数据库查询的方法。

    9 个月前
  • Angular 8 中如何使用 HttpClient 发送 Delete 请求

    在 Angular 8 中,HttpClient 是一个常见的用于进行 HTTP 请求的服务。它提供了各种方法,如 GET、POST、PUT、DELETE 等。本文将详细介绍如何在 Angular 8...

    9 个月前
  • ES11 全新特性:Nullish Coalescing(空值合并) 运算符

    在前端开发中,处理 null 或 undefined 值是经常遇到的问题,而传统的 || 运算符在某些情况下并不能很好地解决这个问题。因此,ES11 新增了一个 Nullish Coalescing ...

    9 个月前
  • 在 Sequelize 中如何使用 “Op” 操作符

    在使用 Sequelize 进行数据库操作时,我们经常需要使用到“操作符”来进行筛选和查询。而其中一个比较重要的操作符就是 “Op” 操作符。本文将详细介绍 “Op” 操作符的使用和相关注意事项。

    9 个月前
  • 搭建 Web Components 开发环境的最佳实践

    Web Components 是一种现代的 Web 开发架构,能够将 Web 应用程序模块化,让开发者可以更加灵活地构建和管理应用程序,提高开发效率和可维护性。本文将介绍如何搭建 Web Compon...

    9 个月前
  • Docker Compose 镜像自动构建和发布到 Docker Hub

    在前端开发中,如何快速部署项目是一个非常重要的问题。Docker 是一个流行的跨平台容器解决方案,可以帮助我们快速地构建、打包和部署应用程序。Docker Compose 则是一个高级容器编排工具,它...

    9 个月前
  • 如何使用 Java 构建了一个 RESTful API

    RESTful API 是一种常用的 Web 开发模式,它使用 HTTP 协议来传输数据,让客户端可以通过标准的 HTTP 方法(如 GET、POST、PUT 和 DELETE)对服务器进行操作。

    9 个月前
  • Koa.js 使用 Koa-static 中间件搭建静态文件服务器

    介绍 Koa.js 是一个 Node.js Web 框架,具有轻量、简单、易扩展等特点,很适合用于开发 Web 服务器。而 Koa-static 是 Koa.js 的一个中间件,提供了静态文件服务的功...

    9 个月前

相关推荐

    暂无文章