Skip to content

ES2020(ES11)

实际上,ECMAScript 的版本命名从 ES2015(ES6)之后,改为按年份命名,因此没有直接被称为 ES11 的版本。但是,如果你指的是 2020 年发布的版本,那应该是 ECMAScript 2020,也常被简称为 ES2020。ES2020 引入了多个新特性,旨在进一步增强语言的表达能力和性能。以下是一些主要的新增特性:

1. Nullish Coalescing Operator (??)

  • 这个新操作符 ?? 是一个逻辑操作符,用于在左侧操作数为 nullundefined 时返回右侧操作数,否则返回左侧操作数。它提供了一种更简洁的空值检查方式。

2. Optional Chaining (?.)

  • ?. 操作符允许你安全地访问深层嵌套的对象属性,即使中间某个属性不存在也不会抛出错误,而是返回 undefined

3. Promise.allSettled

  • Promise.allSettled 方法与 Promise.all 类似,但它会等到所有 Promise 都完成(无论是 resolve 还是 reject)并返回一个包含每个 Promise 状态的对象数组。

4. GlobalThis

  • globalThis 是一个全局对象的引用,无论在浏览器还是 Node.js 环境下,它都能让你访问到全局作用域。这在跨环境编程时非常有用。

5. BigInt Literals and Math Functions

  • ES2020 扩展了对 BigInt 的支持,现在可以直接在数字字面量中使用 n 后缀来创建 BigInt,并且增加了几个与 BigInt 相关的数学函数。

6. Dynamic Import Assertions

  • 动态导入 (import()) 现在可以包含断言(assertions),允许你指定导入模块的类型(如 "type": "json")。

7. Private Class Fields and Methods

  • 私有类字段和方法现在可以用 # 前缀定义,这使得类成员的可见性更加明确。

8. RegExp Unicode Property Escapes

  • 正则表达式中的 Unicode 属性转义现在支持更多字符集,比如 \p{L} 可以匹配任何类型的字母。

9. Array.prototype.at()

  • at() 方法提供了一种更安全地访问数组元素的方式,它支持负数索引,可以更容易地访问数组末尾的元素。

这些新特性进一步丰富了 JavaScript 的功能,提高了代码的可读性和维护性。随着现代浏览器和 JavaScript 运行时环境对这些特性的支持,开发者可以开始在项目中采用这些新功能,以编写更高效、更安全的代码。

Released under the MIT License.