JavsScript 发展史和现状

写在前面的话标准非实际情况。

从我们接触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等。

每个标准版本提案都必须经过几个阶段,这里将对此进行解释

参考

关于 ECMASCRIPT 发展史和现状 – JavaScript 完全手册(2018版)
ECMA-262