空值合并运算符:在 ES9 中处理零和 NULL 值的新方法

在前端开发中,我们经常会遇到处理零和 NULL 值的情况。ES9 中新增了一个空值合并运算符,可以帮助我们更方便地处理这些情况。

空值合并运算符是什么?

空值合并运算符(nullish coalescing operator)是一个双问号(??)符号。它用于检查一个值是否为 null 或 undefined,如果是则返回一个默认值,否则返回该值本身。

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

在上面的示例中,当 foo 和 bar 的值为 null 或 undefined 时,它们将返回默认值 'default'。而当 baz 的值为字符串 'hello' 时,它将返回该值本身。

空值合并运算符与 || 运算符的区别

在 ES6 中,我们通常使用 || 运算符来处理零和 NULL 值。但是,|| 运算符有一个缺点,它会将所有假值都视为 null 或 undefined,包括空字符串、0、false 等。这可能会导致一些意外的结果。

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

在上面的示例中,|| 运算符将空字符串、0、false 都视为假值,因此它们都返回了默认值 'default'。而空值合并运算符只会将 null 和 undefined 视为假值,因此它不会将空字符串、0、false 视为假值。

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

在上面的示例中,空值合并运算符将空字符串和 false 视为真值,因此它们都返回了原始值。只有当值为 null 或 undefined 时,它才会返回默认值 'default'。

空值合并运算符的应用

空值合并运算符可以用于处理函数参数的默认值,例如:

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

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

在上面的示例中,如果没有传递参数 name,它将默认为 'World'。

空值合并运算符还可以用于处理对象的属性值,例如:

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

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

在上面的示例中,如果环境变量中没有设置 HOST 或 PORT,它们将默认为 'localhost' 和 8080。

总结

空值合并运算符是一个在 ES9 中新增的运算符,它可以帮助我们更方便地处理零和 NULL 值。与 || 运算符相比,它只将 null 和 undefined 视为假值,避免了一些意外的结果。我们可以将空值合并运算符用于处理函数参数的默认值和对象的属性值等场景中。

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


猜你喜欢

  • 解决 Chai 对 undefined 值的断言不准确问题

    在前端开发中,测试是不可或缺的一部分。而在测试中,断言库是我们经常使用的工具。其中,Chai 是一个非常受欢迎的断言库,它提供了多种语言风格的断言方式,可以让我们更方便地编写测试用例。

    1 年前
  • Deno 中的 WebSocket 性能优化

    WebSocket 是一种在客户端和服务器之间进行双向通信的协议。Deno 是一个现代化的 JavaScript 和 TypeScript 运行时环境,它提供了一种简单易用的方式来创建 WebSock...

    1 年前
  • Next.js 中如何实现网站访问量的统计?

    在现代网站开发中,网站访问量的统计是非常重要的一项工作。统计网站访问量可以帮助我们了解用户行为、优化网站性能、改进用户体验等。在 Next.js 中,我们可以通过多种方式来实现网站访问量的统计。

    1 年前
  • 使用 Babel 转换 TypeScript 代码

    前言 TypeScript 是 JavaScript 的超集,它提供了更加严格的类型检查和更加完善的面向对象编程支持。但是,由于 TypeScript 还没有被所有浏览器原生支持,因此在实际开发中需要...

    1 年前
  • Node.js 中使用 JWT 进行基于角色的权限管理实现方法

    在 Web 应用程序中,权限管理是非常重要的一个部分。通过对用户的权限进行控制,可以保证系统的安全性和数据的完整性。而基于角色的权限管理是一种比较常见的方式,可以将用户分为不同的角色,并为每个角色分配...

    1 年前
  • 在 Fastify 中使用 Sequelize 进行 SQL 数据库操作

    在前端开发中,我们经常需要使用 SQL 数据库进行数据存储和操作。而 Sequelize 是一款 Node.js ORM(对象关系映射)框架,可以帮助我们更方便地进行 SQL 数据库操作。

    1 年前
  • 如何在 Cypress 测试中使用 Chrome DevTools?

    Cypress 是一个流行的前端自动化测试工具,它可以帮助我们自动化测试网站的各种功能和交互。而 Chrome DevTools 是一个强大的开发者工具集,它可以帮助我们在开发和测试过程中调试网站。

    1 年前
  • 编写 React 测试的基本流程及 Enzyme 的使用

    在前端开发中,测试是非常重要的一环。React 作为目前最流行的前端框架之一,也需要进行测试。本文将介绍编写 React 测试的基本流程,并详细介绍 Enzyme 的使用。

    1 年前
  • Serverless 自动化部署实战教程

    什么是 Serverless? Serverless 是一种云计算的架构方式,它强调了函数计算和事件驱动的编程模型,使得开发者可以快速构建和部署应用程序,而无需关心服务器的管理和维护。

    1 年前
  • Docker Compose 应用实践总结

    Docker Compose 是 Docker 官方提供的一个编排工具,它可以通过一个 YAML 文件来定义和运行多个 Docker 容器。在前端开发中,我们常常需要搭建一些开发环境,比如前端框架、数...

    1 年前
  • Express.js 中 Mongoose 模块的使用及优化

    前言 Mongoose 是一个 Node.js 的 ORM 库,用于操作 MongoDB 数据库。在 Express.js 中使用 Mongoose 可以更加方便地进行数据的存储和查询。

    1 年前
  • ECMAScript 2020 中的解构赋值

    在 JavaScript 中,解构赋值是一种快速准确地获取数组或对象的值的方法。在 ECMAScript 2020 中,解构赋值得到了进一步的加强和改善,使得它更加强大和灵活。

    1 年前
  • Mongoose Schema Types 详解

    什么是 Mongoose Schema Types? Mongoose 是一个在 Node.js 环境下操作 MongoDB 的库,它为我们提供了一个方便的数据模型定义方式。

    1 年前
  • Hapi 与 MongoDB 集成实现复杂查询的方法详解

    在前端开发中,经常需要与数据库进行交互,而 MongoDB 是一种非常流行的 NoSQL 数据库,其使用起来非常方便,特别是在处理大量非结构化数据时表现出色。但是,对于复杂的查询操作,仅仅使用 Mon...

    1 年前
  • 理解 Javascript 中的 async 和 await

    在 Javascript 中,异步编程是非常常见的,它允许我们在不阻塞主线程的情况下执行一些长时间的操作。在过去,我们通常使用回调函数或 Promise 来进行异步编程。

    1 年前
  • 使用 ESLint 将 JavaScript 代码自动格式化的步骤

    什么是 ESLint? ESLint 是一个开源的 JavaScript 代码检查工具,可以对 JavaScript 代码进行静态分析,发现代码中的潜在问题,从而提高代码的质量和可读性。

    1 年前
  • Web Components 基础:Shadow DOM 和 Custom Elements

    Web Components 是一项用于构建可重用、可组合的 Web 应用程序的技术,它由三个主要的技术组成:Shadow DOM、Custom Elements 和 HTML Templates。

    1 年前
  • Hadoop 性能优化:提高任务提交速度

    Hadoop 是一款分布式计算框架,它能够处理大规模数据集并分布式存储。在实际应用中,Hadoop 的性能往往是一个非常重要的问题。本文将介绍如何优化 Hadoop 的性能,特别是如何提高任务提交速度...

    1 年前
  • RxJS 中如何实现多个数据源的合并

    在前端开发中,我们经常需要从多个数据源中获取数据,并将它们合并成一个数据流。在 RxJS 中,我们可以使用 merge 操作符来实现这个功能。 merge 操作符 merge 操作符可以将多个 Obs...

    1 年前
  • ES7 中的 Array.prototype.flat() 方法及其兼容性问题的解决方案

    在 ES7 中,新增了一个非常实用的方法:Array.prototype.flat()。该方法可以将多维数组扁平化为一维数组。本文将详细介绍该方法的用法、注意事项以及兼容性问题的解决方案。

    1 年前

相关推荐

    暂无文章