JavaScript的版本号是什么,它们对应哪个ECMAScript版本?

4

我在查找JavaScript的历史时发现,ECMAScript规范是基于它开发的。因此,JavaScript比ECMAScript早,但似乎后来成为该规范的一种实现。

到目前为止,我所了解的内容如下:

  • JavaScript 1.0是第一个版本
  • ECMAScript 3是在JavaScript 1.5中实现的
  • ECMAScript 4从未完成
  • ECMAScript 5是在JavaScript 1.8.5中实现的
  • ECMAScript 6于2015年发布(因此也称为ECMAScript 2015)
  • ECMAScript 7于2016年发布(因此也称为ECMAScript 2016)

在JavaScript 1.8.5之后,我找不到更高的版本号。哪些JavaScript版本实现了ECMAScript 6或7?


看起来当前版本的JavaScript只符合ESCMA 5标准。JavaScript,就像JScript,ActionScript等一样,实现了ECMAScript,因此,并不是每个新版本的ECMAScript都必须有一个实现它的新版本的JavaScript。根据https://en.wikipedia.org/wiki/JavaScript#Version_history,1.8.5实现了ECMA-262第5版的功能 - 尽管每个浏览器可以独立支持更高版本的功能而不受其他浏览器的影响。 - Nope
似乎在1.8.5版本之后,所有浏览器都放弃了默认的脚本引擎以符合ECMA Script标准。 - Bekim Bacaj
你也错误地混淆了ECMAScript和JavaScript这两个术语。ECMAScript X并不是在JavaScript Y中实现的。JavaScript最先被广泛知晓,因此成为了标准化后的ECMAScript的通用名称。然而,自那时以来,JavaScript只是ECMAScript的一个过时别名,你不能将它们视为规范一侧和其实际实现另一侧。如果你考虑实现,你可能会谈论V8、SunSpider、SpiderMonkey等。它们可能使用一些版本号,附加到开始支持ES版本X或Y的发布上。 - Thomas Urban
4个回答

6
根据维基百科,JavaScript 特定的版本号仅被 Firefox 使用,并在 Firefox 4 中被取消。
现在,实际上并没有“当前版本的 JavaScript” - ECMAScript 标准被创建,浏览器供应商以自己的速度将这些特性实现到其 JS 引擎中。这个速度变化很大 - 如非常有用的Kangax 兼容性表所示。

4

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/New_in_JavaScript#JavaScript_versions:

已废弃。显式版本控制和语言特性的选择是 Mozilla 特有的,正在逐步删除。Firefox 4 是最后一个引用 JavaScript 版本(1.8.5)的版本。随着新的 ECMA 标准,JavaScript 语言特性现在通常与其在 ECMA-262 版本中的初始定义一起提及,例如 ECMAScript 2015。

从 Firefox 5 开始,JavaScript 的变化在 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/New_in_JavaScript/Firefox_JavaScript_changelog 中列出,但不记录版本号。

请参见 Mozilla 对 ECMAScript 2015 支持情况 Mozilla 对 ECMAScript Next 支持情况 的列表,以了解 Firefox 的哪些版本支持哪些功能。


2
"JavaScript"是一个脚本语言实现的专有品牌名称,它由Netscape在1990年代初创建,并且像所有语言一样,多年来不断进行修订。这些修订使用版本号进行跟踪。如今,JavaScript由Mozilla组织维护,并通过版本号追踪其演变。
然而,很多年前,Netscape希望"JavaScript"被认为是Web的官方脚本语言,因此他们向"European Computer Manufacturer's Association"(ECMA)提出了请求,以制定详细说明"官方"语言的规范。该语言(ECMAScript)也已经多次进行修订,并附有版本号。
知道了这一点,在正式和非正式的交谈中,人们通常会说"JavaScript",当他们实际上应该说"ECMAScript"。这就像要求"Kleenex",但你实际上只是想要纸巾。
如今,我们不太担心JavaScript的版本问题。我们只关心运行环境及其支持的功能。通常,新功能不会作为一个整体实现。相反,实现会逐步引入ECMAScript的新功能。

1
实际上,他们停止了对JS版本进行编号,而只使用ECMAScript版本和ECMAScript年份版本(例如ES6/ECMAScript2015)。现在JS只由ES标准化。ES6和ES7仅在ES5上实现。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接