写在前面的话标准非实际情况。
从我们接触js之后可能就要接触下面这些术语:
- ES3
- ES5
- ES6
- ES7
- ES8
- ES9
- ES10
- ES2015
- ES2016
- ES2017
- ES2018
- ES2019
- ECMAScript 2019
- ECMAScript 2018
- ECMAScript 2017
- ECMAScript 2016
- ECMAScript 2015
未来可能接触
- ES11
- ES2020
- ECMAScript 2020
等等。
这些是什么意思呢?它们都指的是一个名为 ECMAScript 的标准。
ECMAScript 是 JavaScript 实现所基于的标准,它通常缩写为 ES 。
除 JavaScript 外,其他语言实现(ed)ECMAScript,包括:
- ActionScript (Flash脚本语言)
- JScript(微软脚本语言)
但是,JavaScript 是 最流行 和广泛使用的 ES 实现。
为何这个奇怪的名字? Ecma International 是瑞士标准协会,负责制定国际标准。
当 JavaScript 被创建时,它由 Netscape 和 Sun Microsystems 呈给 Ecma ,他们给它命名为 ECMA-262 ,别名 ECMAScript。
在 IE9 之后,微软停止在浏览器中将其 ES 支持称为 JScript ,并开始将其称为 JavaScript。
ES版本
令人费解的是,为什么有时 ES 版本会以版本编号引用,有时却按年份引用。
在 ES2015 之前,ECMAScript 规范通常按其版本命名。 因此,ES5 是 2009 年更新发布的ECMAScript 规范的官方名称。
为什么会这样呢? 在 ES2015 诞生的过程中,这个名字从 ES6 变成了 ES2015 ,原因是由于这个过程比较晚,人们仍然把它习惯性的称为 ES6 ,社区并不是忘记了 ES2015 版本的命名 —— 只不过大家仍然在按照版本号来称呼 ES 的版本。
这个表应该清楚一点:
| Edition | Official name | Date pulished |
|---|---|---|
| ES9 | ES2018 | June 2018 |
| ES8 | ES2017 | June 2017 |
| ES7 | ES2016 | June 2016 |
| ES6 | ES2015 | June 2015 |
| ES5.1 | ES5.1 | June 2011 |
| ES5 | ES5 | December 2009 |
| ES4 | ES4 | Abandoned |
| ES3 | ES3 | December 1999 |
| ES2 | ES2 | June 1998 |
| ES1 | ES1 | June 1997 |
ES.Next 始终指示下一版本 JavaScript 的名称。
下一个版本何时推出?
从历史上看,JavaScript 新版本(ES2018)在今年夏季已经标准化,因此我们可以预期为 ECMAScript 2019( ES2019 或 ES10 )将于2019年夏季发布。
关于 TC39
TC39 是 JavaScript 发展委员会。
TC39 的成员是涉及 JavaScript 和浏览器供应商的公司,包括 Mozilla,Google,Facebook,Apple,Microsoft,Intel,PayPal,SalesForce等。
每个标准版本提案都必须经过几个阶段,这里将对此进行解释。