JS 新特性:ES11 可选捕获组、Nullish Coalescing 操作符

概述

随着社会的不断发展,新的技术也在不断的涌现,JavaScript 也不例外。ES6、ES7、ES8… 随着时间的推移,最新的版本已经来到了 ES11。在新的版本中,有两个非常重要的新特性:可选捕获组和 Nullish Coalescing 操作符。

这两个特性都是在我们的代码编写中会经常用到的,因此本篇文章将详细介绍这两个特性及其使用方法,帮助读者更好地了解、使用它们。

可选捕获组

在正则表达式中,捕获组是一种非常重要的概念。简单来说,捕获组就是用一对括号来将表达式中的一部分括起来,这样我们就能够在之后的操作中,方便地获取它们的值。

在以前的版本中,在声明捕获组的时候,如果我们并不需要获取其值,那么就需要额外的添加一个问号,这并不是很优雅。而在 ES11 中,我们可以使用可选捕获组来解决这个问题。

那么什么是可选捕获组呢?简而言之,就是在捕获组内添加一个问号,表示这个捕获组是可选的,如果找不到匹配则其值为 undefined。

以下是可选捕获组的语法:

例如,我们可以使用以下代码来进行正则表达式匹配:

可以看到,在上述代码中,我们声明了一个可选捕获组,即精确匹配 foo 后面的数字。当匹配成功时,该组仍然会捕获到值,并被打印到控制台中;当匹配失败时,则会返回 undefined。

Nullish Coalescing 操作符

在 JavaScript 中,如果我们要给一个变量赋值,通常会使用条件运算符来进行判断。例如:

上述代码会在 param 有值的时候,将其值赋给 foo;当 param 的值为 falsy 时,则将 "default value" 赋值给 foo。

这样看来,这样使用很完美,然而我们不得不面对一个问题,那就是当 param 的值为 0 或 "" 的时候,以上代码也会将其视为 falsy 而使用默认值。当我们实际业务中的参数允许值为 0 时,这里的判断会非常捉鸡。

为了解决这个问题,我们可以使用 Nullish Coalescing 操作符。顾名思义,这个操作符的作用就是处理 null 或者 undefined。

具体而言,Nullish Coalescing 操作符使用 ?? 来定义,其语法如下:

以上代码会在 a 为 null 或 undefined 时返回 b,否则返回 a。

具体使用如下:

以上代码中,我们将 0 和 "" 进行了判断,在使用条件运算符时,也会遇到上面的问题。而在 Nullish Coalescing 操作符的使用中,只有 null 或 undefined 时会执行默认值。

总结

本文介绍了 ES11 中的两个重要特性:可选捕获组和 Nullish Coalescing 操作符。这两个特性都在我们的编码中经常使用,能够帮助我们写出更加优雅的代码。特别是 Nullish Coalescing 操作符,在业务中非常实用,能够避免我们对参数 0 的兼容性问题。

在日常开发中,我们应该充分利用新特性的优势,让自己的代码更加清晰、简洁。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/653dca177d4982a6eb779689


纠错
反馈