ECMAScript各版本簡介及特性

夢禪發表於2015-08-26

今天跟一位同學交流,她說面試的時候被問到“ECMAScript有哪些版本,他們之間各有什麼區別?”
想想ECMAScript版本的問題還真沒有考慮過,只知道最新的6,之前的5。
本著瞭解ECMAScript歷史的心態,查了查資料,總結如下~不足之處,還請指正~


術語

ECMAScript

Sun(現在的Oracle)公司持有著“Java”和“JavaScript”的商標。這就讓微軟不得不把自己的JavaScript方言稱之為“JScript”。然後,在這門語言被標準化的時候,就必須使用一個與二者都不同的名字。“ECMAScript”就這樣誕生了,這個名字的來由是因為執行標準化的組織是Ecma國際。通常來說,術語“ECMAScript”和“JavaScript”指的是同一個東西。但如果把JavaScript看成是“Mozilla或其他組織的ECMAScript實現”,那麼ECMAScript就是實現JavaScript所依據的標準。

ECMA-262

Ecma國際 (一個標準化組織)建立了ECMA-262規範,這個規範就是ECMAScript語言的官方標準。

ECMAScript 6

指的就是ECMA-262規範的第六版,同時也是當前最新的正式規範。

Ecma第39號技術委員會 (TC39)

是一組開發ECMA-262標準規範的人(Brendan Eich和其他一些人)。

歷史

ECMAScript 1

1997年6月釋出,本質上與javascript 1.1 相同——只不過只不過刪除了所有針對瀏覽器的程式碼並作了一些較小的改動:ECMAScript要求支援Unicode標準,而且物件也變成了平臺無關的。

ECMAScript 2

1998年6月釋出,主要是編輯加工的結果。這一版的內容更新是為了與ISO/IEC-16262保持嚴格一致,沒有作任何新增、修改或刪節處理。因此,一般不使用第2版來衡量ECMAScript實現的相容性。

ECMAScript 3

1999年12月釋出,是對ECMAScript標準第一次真正的修改。新增了對正規表示式、新控制語句、try-catch異常處理的支援,修改了字元處理、錯誤定義和數值輸出等內容。
從各方面綜合來看,第3版標誌著ECMAScript成為了一門真正的程式語言。

ECMAScript 4

於2008年7月釋出前被廢棄……命運坎坷

ECMAScript 5

2009年12月釋出,該版本力求澄清第3版中的歧義,並新增了新的功能。新功能包括:原生JSON物件、繼承的方法、高階屬性的定義以及引入嚴格模式

ECMAScript 6

2015年6月17日釋出。截止釋出日期,JavaScript的官方名稱是ECMAScript 2015,Ecma國際意在更頻繁地釋出包含小規模增量更新的新版本,下一版本將於2016年釋出,命名為ECMAScript 2016。從現在開始,新版本將按照ECMAScript+年份的形式釋出。
S6是繼ES5之後的一次主要改進,語言規範由ES5.1時代的245頁擴充至600頁。ES6增添了許多必要的特性,例如:模組和類以及一些實用特性,例如Maps、Sets、Promises、生成器(Generators)等。
儘管ES6做了大量的更新,但是它依舊完全向後相容以前的版本,標準化委員會決定避免由不相容版本語言導致的“web體驗破碎”。結果是,所有老程式碼都可以正常執行,整個過渡也顯得更為平滑,但隨之而來的問題是,開發者們抱怨了多年的老問題依然存在。

ECMAScript 5新特性詳解

移步下面三篇文章~

ECMAScript 6新特性及程式碼示例

移步這裡~
ECMAScript 6 — New Features: Overview & Comparison

新增特性的相容性看這裡 http://kangax.github.io/compa…


補充


參考文章:

[[譯]ECMAScript:ES.next和ES6以及ES Harmony之間的區別][8]

相關文章