ECMAScript 2020:空值合并运算符可以避免在检查 null 和 undefined 时出现的重复代码

在 JavaScript 开发中,经常需要检查 null 和 undefined 值。这些检查很容易导致代码的臃肿,而且会减慢代码的运行速度。幸运的是,ECMAScript 2020 引入了一个新的运算符——空值合并运算符,可以帮助我们简化检查 null 和 undefined 值的代码。

空值合并运算符

空值合并运算符(??)可以将左操作数转换为布尔值。如果左操作数是 null 或 undefined,则返回右操作数。否则,返回左操作数。

下面是一个简单的示例:

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

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

空值合并运算符的优先级与或运算符相同。如果你想使用空值合并运算符和其他运算符一起使用,你必须使用小括号将其包裹起来。

为什么需要空值合并运算符

在 JavaScript 中,检查 null 和 undefined 值的代码非常常见。在这个例子中,我们想确定变量 x 是否存在:

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

这段代码工作得很好,但存在两个问题:

  • 检查 null 和 undefined 值的代码非常繁琐。
  • 这样做会使代码变得臃肿。

空值合并运算符可以帮助解决这些问题。我们可以改写上面的代码:

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

这段代码与上面的代码达到的目的相同,但是更好。

如何在实际中使用空值合并运算符

下面是一个使用空值合并运算符的更复杂的示例:

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

在这个示例中,我们有一个用户对象,它可能会缺少名称和电子邮件地址。我们使用 ?? 运算符检查每个属性。如果属性的值为 null 或 undefined,我们使用默认值。

总结

空值合并运算符是 ECMAScript 2020 中的一个新特性,它可以帮助我们简化检查 null 和 undefined 值的代码。使用空值合并运算符可以使代码更加简洁明了,同时提高代码的可读性。

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


猜你喜欢

  • 如何使用 PWA 提升 Web 应用的用户体验

    什么是 PWA? PWA(Progressive Web Apps)是一种使用现代 Web 技术构建的应用程序,可以在各种设备上运行,并具有本地应用程序的用户体验。

    9 个月前
  • 使用 Jest 的 snapshot 功能解决可视化 UI 组件开发中的样式问题

    在前端开发中,UI 组件开发是一个重要的部分。但是,开发一个良好的 UI 组件需要考虑很多因素,其中样式问题是一个关键的问题。在可视化组件开发中,为了保证组件的样式效果,我们需要不断进行样式文件的修改...

    9 个月前
  • 实现 ES10 的静态方法 String.matchAll 提升字符串匹配性能

    在 ES10 中,新增了一个静态方法 String.matchAll(),该方法可以返回一个迭代器,用于匹配一个字符串中所有与正则表达式匹配的子串。这个新特性可以显著提高 JavaScript 中字符...

    9 个月前
  • 如何正确使用 CSS Reset 提升网站性能

    在前端开发中,CSS Reset 是优化网站性能的重要手段之一。它可以将不同浏览器默认样式之间的差异化削减到最小程度,消除一些不必要的浏览器兼容问题,从而大大提升网站的整体性能和兼容性。

    9 个月前
  • ES8 中的 Object.getOwnPropertyDescriptors() 解决 JavaScript 对象拷贝问题

    在 JavaScript 中,对象拷贝是一项常见的操作,我们可以使用 Object.assign() 方法来完成对象的浅拷贝。但是,在实际开发中,我们常常需要进行深拷贝,即拷贝对象的所有属性,包括嵌套...

    9 个月前
  • RESTful API 中的版本控制方案介绍

    在前端开发中,RESTful API 是非常常用的一种技术,在实际开发中,可能会遇到代码版本的问题,比如接口升级、业务需求变更等。所以,对于RESTful API的版本控制非常的重要。

    9 个月前
  • Angular Flex 介绍和实战

    Angular Flex 是一个针对 Angular 框架的 CSS 库,用于创建灵活和响应式的布局和 UI 组件。Angular Flex 基于 Flexbox 布局模型,提供了一组可复用的 CSS...

    9 个月前
  • ES7 基础:Set 和 Map 集合详解

    本文将介绍 ES7 中新增的 Set 和 Map 集合,包括其定义和基本使用方法,并且会分别介绍 Set 和 Map 的不同特性和应用场景。最后,本文还会提供一些示例代码和学习建议。

    9 个月前
  • Redux 代码规范校验:ESLint + Prettier

    在前端开发中,代码规范是非常重要的,它能够提高代码的可读性、可维护性和可扩展性。同时,为了保持团队协作的一致性,代码规范一般会制定成为约定俗成的技术规范。因此,我们需要一个工具来帮助我们进行代码规范的...

    9 个月前
  • 常用的 Node.js ORM 库一览

    在 Node.js 中,ORM(Object-Relational Mapping)库可以帮助我们将关系型数据库和面向对象编程语言之间的联系嵌入到应用程序中,从而更加方便地操作数据库。

    9 个月前
  • 搭建 React + Webpack 项目,两种大型工程实现方案比较

    React是一个非常流行的Javascript库,它的高度组件化特性、高度可靠及更为高效的虚拟Dom机制让Web开发更加容易、简单,同时也能在很多方面上提升用户体验。

    9 个月前
  • Server-sent Events(SSE) 应用实例分享:实时世界杯比分更新

    前言 在 Web 开发中,实时应用是一种非常有用的技术,它可以让用户在不刷新页面的情况下获取新的数据或者事件。Server-sent Events (SSE) 是一种实现这种实时应用的协议,它可以让服...

    9 个月前
  • webpack 打包 vue 项目时,json 文件无法被解析的问题?

    在使用 webpack 打包 vue 项目时,如果 json 文件无法被正常解析,会导致程序编译出错。本文将从以下几个方面分析这种问题的原因,并提供解决方案。 问题分析 在使用 webpack 打包 ...

    9 个月前
  • ES11 中新的 globalThis 对象和旧的 this 有何区别

    在 ES11 中,新加入了 globalThis 对象,旨在提供一个标准的方法来获取全局对象(即 window 对象或者 global 对象等)。它与常见的 this 对象有着很大的不同,下面将详细介...

    9 个月前
  • SQL 性能优化经验总结

    SQL 查询是 web 应用程序中的基本操作之一,而 SQL 性能优化则是提升web应用程序效率的关键措施之一。本文将分享一些 SQL 性能优化的经验总结,包括如何优化查询和如何使用索引等内容。

    9 个月前
  • 如何在 Koa2 中使用 WebSockets

    WebSockets 是一种基于 TCP 的协议,旨在提供双向通信渠道。WebSockets 允许服务器向客户端发送消息,同时客户端也可以向服务器发送消息,实现了真正意义上的实时通信。

    9 个月前
  • Hapi 和 GraphQL 实现 API 查询语言

    随着 Web 应用程序的发展,前端的开发工作变得越来越复杂。API 查询语言是前端工程师为了方便与服务器进行数据交互而创建的一种技术。Hapi 和 GraphQL 提供了一种优秀的方式,让前端开发者能...

    9 个月前
  • ES6 中结合函数默认值与解构赋值的应用

    随着前端技术的不断发展,使用ES6成为前端开发中一个越来越流行的选择。其中,结合函数默认值与解构赋值可以使代码更加简洁易懂,提高开发效率。本文将深入讲解这个有趣而重要的主题。

    9 个月前
  • Angular4 中 RxJS 使用详解

    在现代的前端开发中,异步编程已经成为了不可避免的一个方向。而在 Angular4 中,RxJS 就是个非常好的异步操作库。那么本文就要详细解析 Angular4 中 RxJS 的应用。

    9 个月前
  • Next.js SSR 页面关闭后的状态维护方案

    Next.js SSR 页面关闭后的状态维护方案 在使用 Next.js 进行服务器端渲染(SSR)开发时,会遇到一种问题:当页面关闭或刷新后,原本已经存在的状态数据会被清空,导致用户体验不佳。

    9 个月前

相关推荐

    暂无文章