ES6,ES7(和更大),ES2015,阶段0,阶段-1(和更大)之间的关系是什么?

时间:2016-08-22 11:37:00

标签: javascript ecmascript-6 ecmascript-7

我最近对以下关于" new-ish" JavaScript的:

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

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

2 个答案:

答案 0 :(得分:12)

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

四位数字是年份,其他是规格版本。

ES2015是ES6。它是ECMAScript 2015的缩写,它是该语言的官方名称,由规范的第6版(因此,“ES6”)定义。来自the spec

  

标准ECMA-262

     

第6版/ 2015年6月

     

ECMAScript®2015语言规范

同样,ES2016 is ES7

  

标准ECMA-262

     

7ᵗʰEdition / 2016年6月

     

ECMAScript®2016语言规范

2015年是他们第一次将这一年纳入语言名称。之前的规范,2011年的5.1,只是“ECMAScript®语言规范”。因此,您将听到ES5.1(2011年6月发布)ES5(2009年12月发布)和ES3(1999年12月发布)。 (没有ES4。)

阶段0等,是指在this github page managed by the TC-39 committee responsible for the language处理的增强语言的提案阶段。增强过程在this page from TC-39上列出:

  

0 - 稻草人

     

1 - 提案

     

2 - 草稿

     

3 - 候选人

     

4 - 完成

......一旦它处于第4阶段,它将是listed here以及预期的规范。例如,Async Functions已达到阶段4并将在ES2017中。

答案 1 :(得分:-1)

TC39将提案分为4个阶段:

  • stage-0 - Strawman:只是一个想法。
  • 阶段-1 - 提案:这值得继续。
  • 阶段-2 - 草稿:初始规范。
  • stage-3 - 候选人:完整规范和初始浏览器实施。
  • 第4阶段 - 已完成:将添加到下一年度版本中。

另外,请查看当前的TC39 proposals