ECMAScript 是 JavaScript 的基礎標準,通常簡稱為 ES。探索有關 ECMAScript 及其最新功能的所有內容。
無論你在哪裡讀到關於 JavaScript 的內容,你總會看到這些術語之一:
- ES3
- ES5
- ES6
- ES7
- ES8
- ES2015
- ES2016
- ES2017
- ECMAScript 2015
- ECMAScript 2016
- ECMAScript 2017
- ECMAScript 2018
- ECMAScript 2019
這些代表什麼意思呢?
它們都指的是 ECMAScript 這個標準。
ECMAScript 是JavaScript 的基礎標準,通常簡稱為 ES。
除了 JavaScript,其他的語言也實現了 ECMAScript,包括:
- ActionScript(Flash 腳本語言),由於 Flash 將於 2020 年正式停用,因此其受歡迎程度不斷下降。
- JScript(微軟腳本方言),由於當時只有 Netscape 支援 JavaScript,網路瀏覽器戰爭正如火如荼進行中,微軟不得不為 Internet Explorer 建立自己的版本。
但當然最受歡迎和廣泛使用的 ECMAScript 實現是 JavaScript。
為什麼會有這個奇怪的名字?Ecma 国际
是一家位於瑞士的標準協會,負責制定國際標準。
當 JavaScript 誕生時,由 Netscape 和 Sun Microsystems 提交給 Ecma,並被命名為 ECMA-262,別名為 ECMAScript。
這份由 Netscape 和 Sun Microsystems(Java 的製造商)發布的新聞稿 或許能幫助理解這個名字的選擇,其中可能包含微軟在委員會中涉及的法律和品牌問題,根據維基百科。
在 IE9 之後,微軟停止在瀏覽器中將其 ES 支援品牌化為 JScript,並開始稱之為 JavaScript(至少我找不到相關的參考資料)。
因此,在 201x 年,唯一支持 ECMAScript 標準的流行語言就是 JavaScript。
什麼是 TC39?
TC39 是負責發展 JavaScript 的委員會。
TC39 的成員包括參與 JavaScript 和瀏覽器供應商相關公司,其中包括 Mozilla、Google、Facebook、Apple、Microsoft、Intel、PayPal、SalesForce 等等。
每個標準版本提案都必須經過不同階段的審核,詳情可參考這裡。
ES 版本
我發現有時候 ES 版本會用編號來表示,有時候會用年份來表示,而且年份有時和編號相差 1,這增加了對於 JavaScript/ECMAScript 的一般混亂感 😄。
在 ES2015 之前,ECMAScript 通常根據版本編號來稱呼。因此,ES5 是指 2009 年發布的 ECMAScript 规范的官方名稱。
為什麼會這樣呢?在導致 ES2015 的過程中,名稱從 ES6 改為 ES2015,但由於這個改動發生得比較晚,人們仍然將其稱為 ES6。
這張表格應該可以稍微解釋清楚一些事情:
版本 | 官方名稱 | 發布日期 |
---|---|---|
ES11 | ES2020 | 2020 年夏季? |
ES10 | ES2019 | 2019 年夏季 |
ES9 | ES2018 | 2018 年 6 月 |
ES8 | ES2017 | 2017 年 6 月 |
ES7 | ES2016 | 2016 年 6 月 |
ES6 | ES2015 | 2015 年 6 月 |
ES5.1 | ES5.1 | 2011 年 6 月 |
ES5 | ES5 | 2009 年 12 月 |
ES4 | ES4 | 棄用 |
ES3 | ES3 | 1999 年 12 月 |
ES2 | ES2 | 1998 年 6 月 |
ES1 | ES1 | 1997 年 6 月 |
ES Next
ES.Next 始終表示 JavaScript 的下一個版本。
所以在撰寫本文時,ES2019 已經發布,ES.Next 將是 ES2020。