浏览器的战场从来都是硝烟弥漫,从 Netscape Navigator 与 Microsoft Internet Explore 之争,IE 大获全胜一度市场占有率达 95%,再到后来 Mozilla Firefox 的崛起以及 Google Chrome 强势出击,浏览器出现群雄割据的局面。市面上的浏览器可以说是品类繁多,主流的有 IE 、Firefox、Chrome、Safari、Opera 以及 Microsoft Edge 等,中国市场也有许多本土企业推出的浏览器,比较有代表性的有 360 安全浏览器、搜狗高速浏览器、QQ 浏览器、遨游浏览器等。这一直就让我非常疑惑,浏览器中使用的 JavaScript 到底是什么版本呢? 回答这个问题首先要从 JavaScript 的历史说起。
JavaScript 历史
1995 年 5 月 JavaScript 的最初版本由网景公司的工程师 Brendan Eich 开发,目的是为了跟微软公司的 Web 技术平台竞争。JavaScript 最初随 Netscape Navigator 2.0 发布时的名称为 LiveScript,后来由于跟 Sun 公司合作为了市场原因把名称改为 JavaScript。需要指出的是,JavaScript 一开始就不仅仅使用在浏览器端,网景公司还将它应用在了 Netscape Enterprise Server 这个服务端的产品上。1996 年,微软公司通过对 JavaScript 的反向工程实现了自己的相类似的技术 JScript,这个领域的竞争出现了网景、Sun 以及微软三足鼎立的格局。1997 年,在ECMA(欧洲计算机制造商协会)的协调下,由网景、Sun、微软、Borland 组成的工作组确定统一标准:ECMA-262。我们通常所说的 ECMAScript 指得就是 ECMA-262,从此各大厂商提供 ECMA-262 的不同实现。从这个方面上说,刚开始提到的浏览器使用的 JavaScript 到底是什么版本这个问题不太准确。更准确的描述应该是问具体厂商实现 ECMA-262 标准的 JavaScript 引擎产品是什么版本。另外,ECMA-262 也在进化,也是按版本迭代的。由于 JavaScript 最初是由网景公司最新提出来的,我们通常按网景公司的实现做蓝本描述 JavaScript 的版本。
JavaScript 版本
图中列出 JavaScript 版本与 ECMAScript 、各大厂商浏览器的对应关系。
ECMAScript 版本
参考:
JavaScript
ECMAScript
JavaScript engine
Web Browser
List of web browsers
Web browser engine