ECMAScript 2020 新增的功能
阅读需要 2 分钟
本文中,跟踪了 ES2020 的实际和潜在功能。文章内容会不断更新。
1.一个关于 ECMAScript 版本的词
请注意,自从 TC39 进程建立以来,ECMAScript 版本的重要性大大降低。现在真正重要的是一个提议的功能处于什么阶段:一旦它达到了第四阶段,就可以安全地使用。但即使如此,你仍然要检查你选择的引擎是否支持它。
2.ECMAScript 2020 提议的功能
回顾每一个 ECMAScript 功能提案都经历的各个阶段:
- 阶段4意味着一个特性将出现在下一个版本(或之后的版本)中。
- 阶段3意味着一个特性仍然有机会包含在下一个版本中。
2.1.第4阶段和 ECMAScript 规范草案的部分
- String.prototype.matchAll (Jordan Harband)
- import() (Domenic Denicola)
- BigInt – arbitrary precision integers (Daniel Ehrenberg)
- Promise.allSettled (Jason Williams, Robert Pamely, Mathias Bynens)
- globalThis (Jordan Harband)
- for-in mechanics (Kevin Gibbons) [提议]
- Optional chaining (Gabriel Isenberg, Claude Pache, Dustin Savery)
- Nullish coalescing Operator (Gabriel Isenberg)
2.2.候选功能(第3阶段)
以下功能目前处于第3阶段:
- JavaScript 中旧版 RegExp 功能 (Claude Pache) [提议]
- import.meta (Domenic Denicola)
- JavaScript 类的私有方法和 getter/setter (Daniel Ehrenberg)
- JavaScript 类的字段声明 (Daniel Ehrenberg, Jeff Morrison) [关于公共实例类字段的文章, 关于私有实例类字段的文章]
- 静态类功能 (Shu-yu Guo, Daniel Ehrenberg) [关于公共静态类字段的文章, 关于私有静态类字段的文章]
- Hashbang 语法 (Bradley Farias) [提议]
- 数字分隔符 (Sam Goto, Rick Waldron)
- Top-level await (Myles Borins)
- WeakRefs (Dean Tribble, Sathya Gunasekaran) [提议]
- RegExp 匹配指数 (Ron Buckton)
- String.prototype.replaceAll (Peter Marshall, Jakob Gruber, Mathias Bynens)
- Promise.any (Mathias Bynens, Kevin Gibbons, Sergey Rubanov)
- Atomics.waitAsync (Lars Hansen) [提议]
3.FAQ
3.1.这些阶段是什么意思?
它们指的是“ TC39 进程”的成熟阶段。查看“ JavaScript 中的 TC39 过程”部分,以获得更多信息。
3.2.[我最喜欢的提议功能]怎么样了?
如果你想知道各种提议的功能处于哪个阶段,请参阅 ECMA-262 GitHub 仓库 的 Readme 文件。
3.3.是否有 ECMAScript 官方的功能列表?
是的,TC39 repo 列出了已完成的提议和介绍 ECMAScript 版本的内容。
4.扩展阅读
以下两本书涵盖了 JavaScript,内容包括 ECMAScript 2019 (ECMAScript 2020 发布后将进行更新):
- 《JavaScript for impatient programmers》(免费在线阅读)
- 《Deep JavaScript》(50% 免费在线阅读)