什麼是 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 上追蹤我們