聊聊近 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