ES6 全稱 ECMAScript 6
瀏覽器支援狀況
目前主流瀏覽器已大多支援 ES6,許多開發框架也紛紛宣布開始支援,如果想知道詳細支援狀況的話可以上 ECMAScript 6 compatibility table 查看。
回顧歷史,1996年11月,JavaScript 的創造者 Netscape 公司,決定將 JavaScript 提交給國際標準化組織ECMA,希望這種語言能夠成為國際標準。次年,ECMA 發布262號標準文件(ECMA-262)的第一版,規定了瀏覽器腳本語言的標準,並將這種語言稱為 ECMAScript,這個版本就是1.0版。
該標準從一開始就是針對 JavaScript 語言制定的,但是之所以不叫 JavaScript,有兩個原因。一是商標,Java 是 Sun 公司的商標,根據授權協議,只有 Netscape 公司可以合法地使用 JavaScript 這個名字,且 JavaScript 本身也已經被 Netscape 公司註冊為商標。二是想體現這門語言的制定者是 ECMA,不是 Netscape,這樣有利於保證這門語言的開放性和中立性。
因此,ECMAScript 和 JavaScript 的關係是,前者是後者的規格,後者是前者的一種實現(另外的 ECMAScript 方言還有 Jscript 和 ActionScript)。日常場合,這兩個詞是可以互換的。
ECMAScript 2015(簡稱 ES2015)這個詞,也是經常可以看到的。它與 ES6 是什麼關係呢?
2011年,ECMAScript 5.1版發布後,就開始制定6.0版了。因此,ES6 這個詞的原意,就是指 JavaScript 語言的下一個版本。
但是,因為這個版本引入的語法功能太多,而且制定過程當中,還有很多組織和個人不斷提交新功能。事情很快就變得清楚了,不可能在一個版本裡面包括所有將要引入的功能。常規的做法是先發布6.0版,過一段時間再發6.1版,然後是6.2版、6.3版等等。
但是,標準的制定者不想這樣做。他們想讓標準的升級成為常規流程:任何人在任何時候,都可以向標準委員會提交新語法的提案,然後標準委員會每個月開一次會,評估這些提案是否可以接受,需要哪些改進。如果經過多次會議以後,一個提案足夠成熟了,就可以正式進入標準了。這就是說,標準的版本升級成為了一個不斷滾動的流程,每個月都會有變動。
標準委員會最終決定,標準在每年的6月份正式發布一次,作為當年的正式版本。接下來的時間,就在這個版本的基礎上做改動,直到下一年的6月份,草案就自然變成了新一年的版本。這樣一來,就不需要以前的版本號了,只要用年份標記就可以了。
ES6 的第一個版本,就這樣在2015年6月發布了,正式名稱就是《ECMAScript 2015標準》(簡稱 ES2015)。2016年6月,小幅修訂的《ECMAScript 2016標準》(簡稱 ES2016)如期發布,這個版本可以看作是 ES6.1 版,因為兩者的差異非常小,基本上是同一個標準。根據計劃,2017年6月發布 ES2017 標準。
因此,ES6 既是一個歷史名詞,也是一個泛指,含義是5.1版以後的 JavaScript 的下一代標準,涵蓋了ES2015、ES2016、ES2017等等,而ES2015 則是正式名稱,特指該年發布的正式版本的語言標準。本書中提到 ES6 的地方,一般是指 ES2015 標準,但有時也是泛指「下一代 JavaScript 語言」。
ES6 從開始制定到最後發布,整整用了15年。
ECMAScript 1.0是1997年發布的,接下來的兩年,連續發布了 ECMAScript 2.0(1998年6月)和 ECMAScript 3.0(1999年12月)。3.0版是一個巨大的成功,在業界得到廣泛支持,成為通行標準,奠定了 JavaScript 語言的基本語法,以後的版本完全繼承。直到今天,初學者一開始學習 JavaScript,其實就是在學3.0版的語法。
2000年,ECMAScript 4.0開始醞釀。這個版本最後沒有通過,但是它的大部分內容被ES6繼承了。因此,ES6制定的起點其實是2000年。
為什麼ES4沒有通過呢?因為這個版本太激進了,對ES3做了徹底升級,導致標準委員會的一些成員不願意接受。ECMA的第39號技術專家委員會(Technical Committee 39,簡稱TC39)負責制訂ECMAScript標準,成員包括Microsoft、Mozilla、Google等大公司。
2007年10月,ECMAScript 4.0版草案發布,本來預計次年8月發布正式版本。但是,各方對於是否通過這個標準,發生了嚴重分歧。以Yahoo、Microsoft、Google為首的大公司,反對JavaScript的大幅升級,主張小幅改動;以JavaScript創造者Brendan Eich為首的Mozilla公司,則堅持當前的草案。
2008年7月,由於對於下一個版本應該包括哪些功能,各方分歧太大,爭論過於激烈,ECMA開會決定,中止ECMAScript 4.0的開發,將其中涉及現有功能改善的一小部分,發布為ECMAScript 3.1,而將其他激進的設想擴大範圍,放入以後的版本,由於會議的氣氛,該版本的項目代號起名為Harmony(和諧)。會後不久,ECMAScript 3.1就改名為ECMAScript 5。
2009年12月,ECMAScript 5.0版正式發布。Harmony項目則一分為二,一些較為可行的設想定名為JavaScript.next繼續開發,後來演變成ECMAScript 6;一些不是很成熟的設想,則被視為JavaScript.next.next,在更遠的將來再考慮推出。TC39委員會的總體考慮是,ES5與ES3基本保持兼容,較大的語法修正和新功能加入,將由JavaScript.next完成。當時,JavaScript.next指的是ES6,第六版發布以後,就指ES7。TC39的判斷是,ES5會在2013年的年中成為JavaScript開發的主流標準,並在此後五年中一直保持這個位置。
2011年6月,ECMAscript 5.1版發布,並且成為ISO國際標準(ISO/IEC 16262:2011)。
2013年3月,ECMAScript 6草案凍結,不再添加新功能。新的功能設想將被放到ECMAScript 7。
2013年12月,ECMAScript 6草案發布。然後是12個月的討論期,聽取各方反饋。
2015年6月,ECMAScript 6正式通過,成為國際標準。從2000年算起,這時已經過去了15年。
原文網址:https://kknews.cc/news/b2kbmz6.html
ECMAScript 是由ECMA -262標準化的手稿語言的名稱。 EcmaScript是一種由ECMA國際(前身為歐洲電腦製造商協會(European Computer Manufacturers Association))在標準ECMA-262中定義的手稿語言規範。這種語言在全球資訊網上應用廣泛,它往往被稱為JavaScript或JScript,但實際上後兩者是ECMA-262標準的實現和擴充。
大部分學習過程式語言的人都聽過Javascript,但卻很少人聽聞過ECMA-262。ECMA是個國際標準,ECMA-262可以說是一個規範書,他定義著一種叫做ECMAScript的腳本語言。ECMAScript是基於許多原創技術而建立,其中包含Nescape的javascript,以及微軟的JScript 。javascript最早是由網景公司(Nescape)的Brendan Eich所發明,並且送交國際組織進行標準化。Brendan Eich在1995年4月,任職於網景期間,為網景瀏覽器開發出JavaScript,之後成為網頁瀏覽器領域應用最廣泛的手稿語言之一。 1998年,艾克協助成立Mozilla.org,2003年在美國線上決定結束網景部門營運後,艾克協助成立了Mozilla基金會。
這標準化的結果就是ECMA-262,在ECMA-262第三版發行以來,ECMA腳本語言已獲得了大規模的採納,並藉以搭配全球資訊網。在全球資訊網中,ECMA腳本語言已成為實質上所有瀏覽器所支援的程式語言。
ECMA-262定義的ECMAScript源於Javascript,當他成為一個國際標準時,所有宣稱符合ECMA-262的腳本語言,包含Javascript或是JScript,都應該遵守其中的規範,但可以超出其未規範的部分,由此可見ECMA-262可以說是Javascript的最核心部分。
ECMA-262的第一版出現在1997年的6月,一直到2011年6月出現了第5版。ECMA-262第五版出現了一個新的"嚴格模式(strict mode)",嚴格模式(strict mode)限制了許多Javascript原本的用法,最主要就是為了減少Javascript最讓人詬病的缺點,過於鬆散的結構,不安全,易發生錯誤等等。
ECMA-262是定義了Javascript的核心規範。
Ref: