ES6、ES7(及更大版本)、ES2015、阶段0、阶段1(及更大版本)之间的关系是什么?
What is the relation between ES6, ES7 (and bigger), ES2015, stage-0, stage-1 (and bigger)?
我最近在关于"新"JavaScript的文章中对以下术语感到困惑:
- ES6
- ES7(有时,虽然很少,ES8和更大)
- ES2015(有时是ES2016或更大)
- 阶段0(和阶段1及更大)
似乎其中一些是子集,功能方面,其他的,但我不太清楚哪些是子集。
很好,这有点令人困惑。: -)
四位数字为年份,其余为规格版本。
ES2015是ES6。它是ECMAScript 2015的缩写,这是该语言的官方名称,由该规范的第6版定义(因此称为"es6")。来自规范:
标准ecma - 262同样,ES2016是ES7:第六版/2015年6月
ECMAScript 2015语言规范
标准ecma - 2622016年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提案
相关文章:
- JS编译器/包管理器,用于版本控制
- jQuery-2.1.1.min.js或最新版本jQuery-2.13.min.js不会't支持'@
- Chrome加载旧版本的Javascript文件
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 为什么jQuery 1.8不能在IE8和InternetExplorer9中使用?(截至2012年9月的IE9最新版本)
- 如何设置jsfiddle's的javascript版本
- 同一HTML页面中的两个不同版本的JQuery
- YouTube作为弹出窗口在桌面版本上播放,但不在移动设备上播放
- 有没有一种方法可以获得three.js的最小/lite版本
- Node和Nodejs版本不同
- 以ECMAScript 5及更高版本为目标时,八进制文字不可用
- 如何在HTML中指定Javascript的版本
- 在编译阶段后创建新的DOM树,或者继续使用原始修改的DOM
- 注册组件的非角度和角度版本
- 浏览器是否持久缓存脚本元素的编译版本
- 如何确定相对较新版本的IE的高度和宽度(IE8不喜欢从JavaScript设置这种样式吗?
- 如何在IE8及以前版本中处理mousemove
- 从自身的一个版本中创建新的JavaScript对象
- PhpWindows 8.1版本上的Javascript web应用程序
- ES6、ES7(及更大版本)、ES2015、阶段0、阶段1(及更大版本)之间的关系是什么?