聊聊近 2 年 ES 的新特性
@冯博
- 标准语法的发布流程
- ES2019
- ES2020
- ES2021
- 介绍几个比较有意思的提案
标准语法的发布流程
TC39 组织
Ecma International, Technical Committee
Ecma 国际技术委员会
https://github.com/tc39
提案过程
- stage0 - strawman
- stage1 - proposal
- stage2 - draft
- stage3 - candidate
- stage4 - finished
Stage0 strawman
任何讨论、想法、改变或者还没加到提案的特性都在这个阶段。只有TC39成员可以提交。
Stage1 proposal
- 产出一个正式的提案
- 发现潜在的问题,例如与其他特性的关系,实现难题
- 提案包括详细的API描述,使用例子,以及关于相关的语义和算法
Stage2 draft
- 提供一个初始的草案规范,与最终标准中包含的特性不会有太大差别。草案之后,原则上只接受增量修改。
- 开始实验如何实现,实现形式包括polyfill, 实现引擎(提供草案执行本地支持),或者编译转换(例如babel)
Stage3 candidate
- 候选阶段,获得具体实现和用户的反馈。此后,只有在实现和使用过程中出现了重大问题才会修改
- 规范文档必须是完整的,评审人和ECMAScript的编辑要在规范上签字
- 至少要在一个浏览器中实现,提供polyfill或者babel插件
Stage4 finished
- 已经准备就绪,该特性会出现在下个版本的ECMAScript规范之中
- 需要通过有2个独立的实现并通过验收测试,以获取使用过程中的重要实践经验。
ES2020
ES2021
几个比较好玩的提案
- https://github.com/JSCIG/es-discuss/discussions/27
- https://es.discourse.group/t/object-pick-omit/515
- https://github.com/tc39/proposal-top-level-await
deck
By bo feng
deck
- 109