使用 ECMAScript 2020 中的 nullish 合并操作符解决空值问题

在编写前端代码时,经常会遇到需要设置默认值的情况。此时我们通常会使用 || 运算符判断一个变量是否为空,然后给它一个默认值,例如:

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

使用 || 运算符的问题在于,它在判断变量是否为空时,会将一些其它类型的数据(例如数字0和空字符串)也视为 falsy 值,这可能导致一些不该被覆盖的值也被设置了默认值,从而引发 bug。

好在 ECMAScript 2020 标准引入了一个新的操作符:nullish 合并操作符(??),用于解决这个问题。nullish 合并操作符只在左侧变量为 null 或 undefined 时,才会使用右侧的默认值。

以下是一个使用 nullish 合并操作符的示例:

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

通过上述代码,我们可以看到若变量 foo 为空,则 bar 将被赋值为默认值 default

除了与 nullundefined 进行比较,nullish 合并操作符也可以用于数组和对象。例如:

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

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

需要注意的是,在使用 nullish 合并操作符时,应确保目标环境已支持该操作符,否则代码可能无法正确运行。一种简单的解决方案是使用 Babel 等工具将 ES2020 的代码转换为 ES5 进行部署。

综上,nullish 合并操作符是一种简便且安全的变量初始化方式,能够有效避免一些潜在的 bug。

总结

  • ECMAScript 2020 引入了 nullish 合并操作符,用于解决使用 || 运算符判断变量是否为空时的一些问题。
  • 使用 nullish 合并操作符可以在一定程度上避免影响逻辑的默认值设置错误。
  • 需要注意在目标环境已支持 nullish 合并操作符之后再使用该操作符。

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


猜你喜欢

  • 如何在 SASS 中使用关键字 “with” 来处理条件循环?

    在前端开发中,SASS 是一个非常流行的 CSS 预处理器。它提供了许多有用的功能来帮助我们更方便地编写 CSS。其中一个非常有用的功能是条件循环,它可以让我们更轻松地处理一些重复的 CSS 样式。

    10 个月前
  • 如何在 Web 浏览器上使用 Server-Sent Events

    简介 Server-Sent Events (SSE) 是一种基于 HTTP 协议的服务器推送技术,它允许服务器向客户端发送实时事件流,而不需要客户端不断地发起请求。

    10 个月前
  • 利用 Web Components 实现可折叠面板的教程

    前言 随着 Web 应用的不断发展,页面的交互效果也越来越重要。其中,可折叠面板是一种非常常见的交互效果,可以让用户在有限的空间内展示更多的内容。本文将介绍如何利用 Web Components 实现...

    10 个月前
  • 如何解决 Koa 框架 post 请求返回 404 的问题

    背景 Koa 是一个 Node.js 的 Web 框架,它的设计理念是“中间件”(middleware)。 在使用 Koa 进行 post 请求时,有些情况下会出现返回 404 的问题,这个问题可能会...

    10 个月前
  • Redis 缓存雪崩问题的解决方式

    什么是 Redis 缓存雪崩问题? Redis 缓存雪崩问题指的是在某个时间点,缓存中的大量数据同时过期或失效,导致大量请求直接打到数据库上,从而导致数据库压力过大,甚至宕机。

    10 个月前
  • Deno 中如何进行性能测试?

    Deno 是一个基于 V8 引擎的安全 TypeScript 运行时,它提供了一种新的方式来构建和运行 JavaScript 应用程序。在 Deno 中进行性能测试是非常重要的,因为性能测试可以帮助开...

    10 个月前
  • 使用 CSS 自定义元素制作 Web 组件

    在 Web 开发中,组件化已经成为了前端开发的主流趋势。而 CSS 自定义元素则是实现组件化的一种重要方式。本文将介绍如何使用 CSS 自定义元素制作 Web 组件,并提供示例代码和深度指导。

    10 个月前
  • Chai 库的常见问题详解

    Chai 是一个流行的 JavaScript 测试库,它提供了一组丰富的断言和测试辅助函数,可以用于编写高质量的单元测试和集成测试。在使用 Chai 进行测试时,可能会遇到一些常见的问题和困惑,本文将...

    10 个月前
  • 使用 Mocha 测试框架测试 Redux 应用程序

    在前端开发中,测试是一个非常重要的环节。测试可以帮助我们发现和修复代码中的问题,保证代码的质量。在 Redux 应用程序中,我们可以使用 Mocha 测试框架来进行测试。

    10 个月前
  • PM2 的核心功能介绍:进程管理,应用程序的部署和停止

    前言 在 Web 开发中,我们经常需要运行多个 Node.js 应用程序或服务。这些应用程序通常需要长时间运行,而且需要不断监控和管理。这时候,一个可靠的进程管理工具就显得尤为重要。

    10 个月前
  • 如何让 Kubernetes 中的服务高可用

    在 Kubernetes 中,服务的高可用性是非常重要的。在生产环境中,如果服务出现故障,会对业务造成严重的影响。本文将介绍如何让 Kubernetes 中的服务高可用。

    10 个月前
  • RxJS skip 操作符详解

    RxJS 是一种流式编程库,它提供了一系列操作符,以便于开发者操作流式数据。其中,skip 操作符是一种非常有用的操作符。本文将详细介绍 RxJS skip 操作符的使用方法和作用。

    10 个月前
  • ES6 中的 Generator 使用介绍和实践

    什么是 Generator? Generator 是 ES6 新增的一种函数类型,可以看做是一个状态机,内部封装了多个状态,每次调用 Generator 函数时,可以返回一个迭代器对象,通过调用迭代器...

    10 个月前
  • 如何在 Vue.js 中应用 CSS Reset

    在 Vue.js 中应用 CSS Reset 是前端开发中的一项基本技能。CSS Reset 是用于清除浏览器默认样式的一种技术,它可以使我们更方便地开发网页,避免出现各种兼容性问题。

    10 个月前
  • LESS 中字体图标的使用技巧

    在前端开发中,字体图标是非常常见的一种图标使用方式。相比于图片图标,字体图标具有体积小、清晰度高、可缩放等优点,因此被广泛应用于各种网站和APP的开发中。LESS 是一种 CSS 预处理器,它可以使 ...

    10 个月前
  • 使用 Webpack 支持 AngularJS 路由的新手指南

    随着前端技术的不断发展,AngularJS 作为一种流行的前端框架,已经被广泛应用于各种 Web 应用程序中。而使用 AngularJS 路由可以更好地组织和管理应用程序的视图和控制器,使其更加灵活和...

    10 个月前
  • 如何在 Vue 中使用 Babel 转义 ES6

    在现代前端开发中,ES6 已经成为了主流的 JavaScript 语言标准。然而,由于不同浏览器对 ES6 的支持程度不同,我们仍然需要使用 Babel 这样的工具来将 ES6 代码转换成浏览器可以理...

    10 个月前
  • RESTful API 与 OAuth2 认证机制的接入流程分析

    在前端开发中,RESTful API 和 OAuth2 认证机制的应用越来越广泛,对于开发者来说,了解这两种技术的接入流程是非常重要的。 RESTful API RESTful API 是一种基于 H...

    10 个月前
  • 借助 Headless CMS 实现前后端分离:架构实践分享

    前后端分离已经成为现代 Web 开发的一种趋势,它能够提高团队协作效率、降低系统耦合度、优化用户体验等等。Headless CMS 是一种新兴的解决方案,它提供了一种将内容管理部分与展示部分分离的方式...

    10 个月前
  • Hapi.js 开发:使用 hapi-swagger 自动生成 API 文档

    Hapi.js 是 Node.js 的一个开源框架,它可以帮助我们快速构建可扩展的 Web 应用程序。在 Hapi.js 中,我们可以使用 hapi-swagger 插件来自动生成 API 文档,这样...

    10 个月前

相关推荐

    暂无文章