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

Kar*_*lek 6 javascript ecmascript-6 ecmascript-7

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

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

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

T.J*_*der 12

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

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

ES2015是ES6.它是ECMAScript 2015的缩写,它是该语言的官方名称,由规范的第6版(因此,"ES6")定义.从规格:

标准ECMA-262

第6版/ 2015年6月

ECMAScript®2015语言规范

同样,ES2016是ES7:

标准ECMA-262

7ᵗʰ版/ 2016年6月

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 - 稻草人

1 - 提案

2 - 草案

3 - 候选人

4 - 完成

......一旦它处于第4阶段,它将在此处列出预期的规格.例如,异步功能已达到阶段4并将在ES2017中.