什么是 ECMAScript?与 JavaScript 有什么关系?

2024年4月8日

💎 加入 E+ 成長計畫 與超過 350+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源

在这篇文章你会知道

  • JavaScript 的起源
  • JavaScript 和 ECMAScript 之间的关系是什么?两者有什么不一样?

JavaScript 是网页开发中不可或缺的程式语言,随着网页开发技术的快速发展,JavaScript 也一直在持续革新演进,以满足开发者的需求。ECMAScript(简称 ES) 是作为 JavaScript 的标准规范,每年都会有新版本释出,引入新的语法特性和功能。

本文将介绍 JavaScript 和 ECMAScript 之间的关系,帮助读者了解 JavaScript 的发展。

JavaScript 的起源

JavaScript 的诞生可以追溯到 1995 年,当时由 Netscape 公司的 Brendan Eich 开发。当时,网页仍然是静态的,只能呈现文字和图像,缺乏互动性。为了让网页变得更加生动有趣,Netscape 需要一种能够在浏览器中运行的程式语言,赋予网页动态功能。

借助 Java 热潮

起初,JavaScript 被称为 "Mocha",后来改名为 "LiveScript"。最终在 1995 年 12 月,Netscape 与 Sun(Java 的开发商)合作,将其正式命名为 "JavaScript"。

这个名字的选择颇具策略性。当时,Java 语言正处于鼎盛时期,拥有广泛的开发者群体和使用者基础。Netscape 希望通过蹭 Java 的热度,来吸引更多人关注和使用 JavaScript。

微软的 JScript

同年,微软推出了自家的 Internet Explorer 浏览器,加入了浏览器市场竞争。 微软也推出了基于 JavaScript 实作的程式语言 - JScript,并在 IE3.0 中首次支援了 JScript。

开始标准化

由于缺乏统一的标准,Netscape 的 JavaScript 和微软的 JScript(IE 浏览器中的 JavaScript 实作)在语法和功能上存在一些差异,导致网页在不同浏览器上可能无法正常显示。

为解决这个问题,1996 年 Netscape 向欧洲电脑制造商协会(ECMA)提交了 JavaScript 的标准提案。 1997 年,ECMA 以 JavaScript 为基础制定了 ECMAScript 标准规范 ECMA-262,JavaScript 成为了 ECMAScript 最著名的实作之一。

ECMA 简介:ECMA 是一个致力于资讯和通讯系统标准化的国际性行业组织,除了 JavaScript 之外,负责了像 C#等语言的标准制定。(来源:维基百科

浏览器竞争与语言进展

2000 年初,微软开发的 IE 浏览器占据主导地位,然而,局面在 2004 年开始改变,当时 Netscape 的继任者 Mozilla 推出了 Firefox 浏览器。 同时,JavaScript 及其相关的函式库,如 jQuery,也相继蓬勃发展。

到了 2008 年,Google 首次推出了 Chrome 浏览器,其 V8 JavaScript 引擎比竞争对手更快。 其中一个关键的创新是即时编译(JIT),因此其他浏览器供应商需要彻底改革他们的引擎。

在各方的共同推动下,JavaScript 的发展开始加速。 2009 年,ECMAScript 5 标准发布,引入了许多新的特性,使 JavaScript 更加强大易用。

ECMAScript 6 的诞生

对于 JavaScript 这程式语言来说,2015 年代表着一个重要的变革,因为 ECMAScript 6(也会被称作 ES6, ES2015)标准发布。

实际上,ES6 从 2009 年开始就在修订,修订的目标是为了使这门语言能够支援大型应用的开发,因此在这个版本中加入了许多重要的特性:包括现在所有 JavaScript 开发者都会用到的例如:箭头函式、模组、类别、Promise 等,这些功能使 JavaScript 更加现代化、易于开发和维护。

ECMAScript 每年更新

自 ES6 之后,ECMAScript 采纳了更规律的版本发布机制,每年发布一个新版本,添加新的内容和更新。最近的版本是 2023 年 6 月发布的第 14 个版本。(ECMAScript® 2023 语言规范)

在下一篇文章《ES6 有什么新特性?最新的 ES 版本有什么新特性?》,我们会介绍 ES6 的重要性,以及最新的 ES2023 版本中加入的重要特性与功能。


参考资料

🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們