利用 ES10 新特性: nullish 合并运算符

在 JavaScript 中,有时候需要设置默认值或者避免空值导致的错误。在以往的代码中,我们可能会使用 || 运算符或者三元运算符来处理这个问题。然而,ES10 引入了一个新的运算符 —— nullish 合并运算符,可以很好的解决这个问题。本文将会详细介绍 nullish 合并运算符,并给出一些实例。

nullish 合并运算符

nullish 合并运算符(??)是 ES10 新引入的一种运算符,它可以用于合并两个值或变量,提供默认值,避免空值的情况。与 || 运算符不同的是,当左侧的操作数为 null 或 undefined 时,才会选取右侧的操作数。

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

上面的代码中,当 foo 值为 null 时,nullish 合并运算符将返回 'default value',而当 bar 值为 'specified value' 时,nullish 合并运算符将返回 'specified value'。

nullish 合并运算符与 || 运算符的区别

对比 nullish 合并运算符与 || 运算符,你会发现它们的区别主要在于判断空值的情况。|| 运算符会将 false、0、'' 等非空值也视为假值,当左侧操作数为假值时,才会返回右侧的操作数。而 nullish 合并运算符只在左侧操作数为 null 或 undefined 时返回右侧操作数。

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

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

实例应用

给定默认值

在实际开发中,我们经常需要为变量或函数设置默认值。可以通过 nullish 合并运算符来完成这个任务。

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

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

避免对象属性不存在的错误

当我们访问对象的属性时,如果该属性不存在或者值为 null/undefined,就会抛出 TypeError 的错误。通过 nullish 合并运算符可以避免这个错误。

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

避免函数参数为 null 或者 undefined 的错误

在执行函数时,有些参数可能会被省略或者为空值,此时我们可以使用 nullish 合并运算符避免错误。

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

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

总结

nullish 合并运算符是 ES10 中新增的一个运算符,它可以很好地解决默认值和空值问题。相较于 || 运算符,nullish 合并运算符对空值的判断更加严格,只有在左侧操作数为 null 或 undefined 时才会返回右侧操作数。使用 nullish 合并运算符可以避免代码中的错误,提高代码的质量和可读性。

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


猜你喜欢

  • Material Design 与响应式设计的完美结合

    在当今的互联网时代,网页设计已经成为了企业品牌形象的重要组成部分。而 Material Design 和响应式设计则成为了现代网页设计的两个重要方向。本文将详细介绍 Material Design 和...

    1 年前
  • RxJS 中的 concatMap、mergeMap 和 switchMap 性能比较

    在 RxJS 中,我们经常会用到三个操作符:concatMap、mergeMap 和 switchMap。它们都是用来处理 Observable 序列的操作符,但是它们的实现方式和使用场景却有所不同。

    1 年前
  • 在 GoLang 中实现 RESTful API 的最佳实践

    在 Web 开发中,RESTful API 是一种常用的设计风格,它能够提高 Web 应用程序的可伸缩性、可维护性和可扩展性。在 GoLang 中,实现 RESTful API 的最佳实践可以帮助开发...

    1 年前
  • Serverless 架构中调用 API Gateway 遇到的问题解决方法

    Serverless 架构中调用 API Gateway 遇到的问题解决方法 Serverless 架构是一种新兴的云计算架构,它的主要特点是不需要管理服务器,可以快速部署和运行代码。

    1 年前
  • 如何在 Cypress 中使用 Debugger 调试?

    前言 Cypress 是一款流行的前端自动化测试框架,它提供了许多有用的功能来帮助我们编写高质量的测试代码。其中一个强大的特性是 Debugger,它可以让我们在测试运行时暂停代码执行,以便我们查看变...

    1 年前
  • Custom Elements 中基础知识:HTML Import、ES Modules 和 template 元素

    前言 在现代 Web 开发中,组件化已经成为了一种非常流行的方式。在 React、Vue、Angular 等框架中,组件化被广泛应用。但是在 Web 标准中,组件化并没有得到很好的支持。

    1 年前
  • React+AntD 使用 React-slick 实现轮播图

    前言 轮播图是现代 Web 开发中常见的组件之一,它可以帮助我们展示多张图片或内容,增强用户体验。在 React 开发中,我们可以使用第三方库 React-slick 来实现轮播图,而 AntD 则提...

    1 年前
  • ECMAScript 2017 中对 Array 的追加和与、或、非逻辑操作符

    ECMAScript 2017 是 JavaScript 最新的标准,也称为 ES8。在这个新标准中,对于数组的操作进行了一些追加和改进,同时还增加了三个逻辑操作符:与、或、非。

    1 年前
  • 使用 ECMAScript 2021 中的 flatMap 方法对数组进行转换

    在前端开发中,我们经常需要对数组进行转换,以满足不同的需求。ECMAScript 2021 中新增的 flatMap 方法可以帮助我们更方便地进行数组转换。 flatMap 方法简介 flatMap ...

    1 年前
  • Mocha 核心代码分析

    Mocha 是一款流行的 JavaScript 测试框架,它支持异步测试和多种测试报告。在前端开发中,Mocha 是一个必备的工具,它可以帮助我们快速、准确地测试前端代码。

    1 年前
  • 如何使用 React+Redux+Jest+Enzyme 进行完整测试

    React 是一个流行的 JavaScript 库,用于构建用户界面。Redux 是一个用于管理应用程序状态的库。Jest 是一个用于编写和运行测试的框架。Enzyme 是一个用于测试 React 组...

    1 年前
  • PM2 处理 Node.js 进程异常的最佳实践

    在 Node.js 应用程序中,进程异常是一种常见的问题。如果不正确处理这些异常,它们可能会导致应用程序崩溃,甚至可能会影响整个服务器。PM2 是一款流行的 Node.js 进程管理器,它提供了许多有...

    1 年前
  • AngularJS:使用 Service 进行代码重构和组件化的最佳实践

    前言 AngularJS 是一款流行的前端框架,它的核心思想是将应用程序的不同部分分离成不同的模块,以便更好地管理和维护代码。其中,Service 是 AngularJS 中一种重要的组件,它可以帮助...

    1 年前
  • 从 ES5 到 ES6:Babel 插件的开发与使用

    在前端开发中,我们经常需要使用 JavaScript 进行编程。随着 JavaScript 的不断发展,我们也需要不断学习新的语法和特性。ES6 是 JavaScript 的一个重大更新,带来了许多新...

    1 年前
  • 如何使用 ESLint 编写规范的 JavaScript 代码

    什么是 ESLint ESLint 是一个 JavaScript 代码检查工具,它可以帮助我们发现代码中的潜在问题并提供修复建议。ESLint 可以根据预设的规则检查代码风格和代码质量,同时也支持自定...

    1 年前
  • Hapi 框架 Pipe 的例子

    在前端开发中,Hapi 框架是一个非常流行的 Node.js 框架。它提供了一系列的工具和功能,可以帮助开发者构建高效、可扩展和稳定的 Web 应用程序。其中一个非常有用的功能就是 Pipe。

    1 年前
  • Mongoose schema 自定义类型教程

    在使用 Mongoose 进行 MongoDB 数据库操作时,我们常常需要定义 Schema 来规定数据模型的结构。Mongoose 内置了许多常见的 Schema 类型,如 String、Numbe...

    1 年前
  • 如何在 Next.js 中使用 Contentful API

    在现代 Web 开发中,很多网站都需要从外部 API 中获取数据,而 Contentful 是一个流行的内容管理系统(CMS),它提供了一个强大的 API,可以用于获取各种类型的内容,例如文章、图片、...

    1 年前
  • Deno 中使用 GraphQL Code Generator 进行代码自动生成

    GraphQL 是一种用于 API 的查询语言,它允许客户端定义自己需要的数据结构,而不是由服务器返回固定的数据结构。Deno 是一个安全、稳定的 JavaScript 和 TypeScript 运行...

    1 年前
  • 在 ES10 中正确的使用 exports 和 module.exports

    在 ES10 中正确的使用 exports 和 module.exports 在 Node.js 中,我们经常用到 exports 和 module.exports 来导出模块,但是在 ES6 及之前...

    1 年前

相关推荐

    暂无文章