ES6、ES7(及更大版本)、ES2015、阶段0、阶段1(及更大版本)之间的关系是什么?

What is the relation between ES6, ES7 (and bigger), ES2015, stage-0, stage-1 (and bigger)?

本文关键字:版本 阶段 关系 是什么 之间 ES6 ES2015 ES7      更新时间:2023-09-26

我最近在关于"新"JavaScript的文章中对以下术语感到困惑:

  • ES6
  • ES7(有时,虽然很少,ES8和更大)
  • ES2015(有时是ES2016或更大)
  • 阶段0(和阶段1及更大)

似乎其中一些是子集,功能方面,其他的,但我不太清楚哪些是子集。

很好,这有点令人困惑。: -)

四位数字为年份,其余为规格版本。

ES2015是ES6。它是ECMAScript 2015的缩写,这是该语言的官方名称,由该规范的第6版定义(因此称为"es6")。来自规范:

标准ecma - 262

第六版/2015年6月

ECMAScript 2015语言规范

同样,ES2016是ES7:
标准ecma - 262

2016年6月7日版

《ECMAScript®2016语言规范》

2015是他们第一次在语言名称中加入年份。之前的规范,2011年的5.1,只是"ECMAScript®语言规范"。所以你会听到ES5.1(2011年6月发布)、ES5(2009年12月发布)和ES3(1999年12月发布)。(没有ES4.)

阶段0等指的是增强语言的提案阶段,这些提案在负责该语言的TC-39委员会管理的github页面上处理。TC-39的这一页列出了增强过程:

0 - Strawman

1 -提案

2 -草案

3 -候选

4 -完成

…一旦进入第4阶段,它就会在这里列出,以及它所期望的规范。例如,Async函数已经达到了第4阶段,将在ES2017中实现。

TC39将提案分为4个阶段:

  • 阶段0 - Strawman:只是一个想法。
  • 阶段1 -提案:这是值得研究的。
  • 阶段2 -草案:初始规范。
  • 阶段3 -候选:完成规范和初始浏览器实现。
  • 阶段4 -完成:将添加到下一个年度版本。

另外,请查看当前的TC39提案