ES11 发布啦!这 7 个新特性你需要知道

阅读时长 5 分钟读完

ES11,也被称作 ES2020,是 ECMAScript 最新的版本。在这个版本中,我们又迎来了一些新的特性。这些新特性不仅可以让我们的开发更加便捷,还能提高代码的可读性和可维护性。本文将介绍 ES11 中的 7 个新特性,并附上示例代码,希望能够帮助大家更好地理解这些新特性。

1. Promise.allSettled()

在 ES11 中,Promise 对象新增了一个 allSettled() 方法,它与 Promise.all() 方法类似,但 allSettled() 不会在任何 Promise 被拒绝时中断执行。而是会等待所有 Promise 对象都变为 settled 状态(已完成或已拒绝),然后返回一个 Promise 对象,该 Promise 对象将包含一个数组,数组中的每个元素都是一个对象,表示对应的 Promise 对象的状态和结果。

示例代码:

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

----------------------------------------- -- -
  ---------------------
---
展开代码

输出结果:

2. Optional Chaining

Optional Chaining 是一种新的语法,可以简化访问嵌套对象的代码。在访问一个嵌套对象的属性时,我们通常需要使用多个点号,如 obj.a.b.c。但如果 obj.a 不存在,那么 obj.a.b.c 会报错。使用 Optional Chaining,我们可以使用问号(?)来代替点号,如 obj?.a?.b?.c。如果 obj.a 不存在,那么表达式的值将是 undefined,而不会报错。

示例代码:

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

-------------------------------- -- ----------
----------------------------------- -- ---------
----------------------------------------------- -- ---------
展开代码

3. Nullish Coalescing

Nullish Coalescing 是另一种简化代码的语法。它可以用来判断一个变量是否为 null 或 undefined,如果是,则返回默认值。在以前,我们通常使用逻辑或(||)运算符来实现这个功能,如 a || b。但逻辑或运算符在 a 的值为 false、0、'' 或 NaN 时,都会返回 b。这可能会导致一些意外的结果。Nullish Coalescing 使用两个问号(??)来代替逻辑或运算符,它只会在 a 的值为 null 或 undefined 时返回 b。

示例代码:

4. String.prototype.matchAll()

在 ES11 中,String 对象新增了一个 matchAll() 方法,它可以用于在字符串中匹配所有符合某个正则表达式的子串,并返回一个迭代器对象。迭代器对象中的每个元素都是一个数组,包含匹配的子串和各个捕获组的匹配结果。

示例代码:

输出结果:

5. BigInt

BigInt 是一种新的数据类型,用来表示任意精度的整数。它可以表示比 Number 类型更大的整数,而且不会出现精度丢失的问题。在 BigInt 类型的整数后面需要加上 n,以区分它们和普通的 Number 类型的整数。

示例代码:

6. globalThis

globalThis 是一个新的全局对象,在浏览器和 Node.js 中都可以使用。它可以用来获取全局作用域下的 this 对象。在浏览器中,globalThis 等同于 window 对象;在 Node.js 中,globalThis 等同于 global 对象。

示例代码:

7. import()

import() 是一个动态导入模块的方法,它可以在运行时根据需要加载一个模块。在以前,我们只能使用 import 语句来导入一个模块,但这种方式必须在代码的头部使用,并且不能根据条件来导入不同的模块。使用 import() 方法,我们可以在代码的任何位置动态导入一个模块。

示例代码:

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

------------------
  ------------ -- -
    --------------------------
  --
  ---------- -- -
    -------------------
  ---
展开代码

以上就是 ES11 中的 7 个新特性。它们都是非常实用的特性,可以帮助我们更加便捷地编写代码。希望本文能够对大家有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67889fc409307066474801f1

纠错
反馈

纠错反馈