名詞解釋:
ISO: 國際標(biāo)準(zhǔn)化組織(International Organization for Standardization憾儒,ISO)簡稱ISO舟茶,是一個全球性的非政府組織豺瘤,是國際標(biāo)準(zhǔn)化領(lǐng)域中一個十分重要的組織惰聂。
ECMA: Ecma國際(Ecma International)是一家國際性會員制度的信息和電信標(biāo)準(zhǔn)組織执桌。原名為歐洲計算機(jī)制造商協(xié)會ECMA(European Computer Manufacturers Association)
ECMAScript: ECMAScript 是標(biāo)準(zhǔn)化組織 ECMA(Ecma International - European association for standardizing information and communication systems)發(fā)布的腳本語言規(guī)范家厌。
ECMA第39號技術(shù)委員會 (TC39): 負(fù)責(zé)制定和審核ECMA-262標(biāo)準(zhǔn)扔仓,成員由業(yè)內(nèi)的大公司派出的工程師組成褐奥,目前共25個人。該委員會定期開會当辐,所有的郵件討論和會議記錄抖僵,都是公開的。
維基百科:
版本 | 發(fā)表日期 | 與前版本的差異 |
---|---|---|
1 | 1997.6 | 首版 |
2 | 1998.6 | 格式修正缘揪,以使得其形式與ISO/IEC16262國際標(biāo)準(zhǔn)一致 |
3 | 1999.12 | 強(qiáng)大的正則表達(dá)式耍群,更好的詞法作用域鏈處理,新的控制指令找筝,異常處理蹈垢,錯誤定義更加明確,數(shù)據(jù)輸出的格式化及其它改變 |
4 | 放棄 | 由于關(guān)于語言的復(fù)雜性出現(xiàn)分歧,第4版本被放棄,其中的部分成為了第5版本及Harmony的基礎(chǔ)袖裕。 |
5 | 2009.12 | 新增“嚴(yán)格模式(strict mode)”曹抬,一個子集用作提供更徹底的錯誤檢查,以避免結(jié)構(gòu)出錯。澄清了許多第3版本的模糊規(guī)范,and accommodates behaviour of real-world implementations that differed consistently from that specification急鳄。增加了部分新功能,如getters及setters,支持JSON以及在物件屬性上更完整的反射谤民。 |
6 | 2015.6 | 多個新的概念和語言特性。ECMAScript Harmony將會以“ECMAScript 6”發(fā)布疾宏。 |
7 | 工作中 | 多個新的概念和語言特性 |
* 2004年6月Ecma組織發(fā)表了ECMA-357標(biāo)準(zhǔn)张足,它是ECMAScript的一個擴(kuò)延,也被稱為E4X(ECMAScript for XML)坎藐。
ECMAScript 1
1997年6月發(fā)布:
本質(zhì)上與javascript 1.1 相同
只不過只不過刪除了所有針對瀏覽器的代碼并作了一些較小的改動:ECMAScript要求支持Unicode標(biāo)準(zhǔn)为牍,而且對象也變成了平臺無關(guān)的。
ECMAScript 2
1998年6月發(fā)布:
主要是編輯加工的結(jié)果岩馍。這一版的內(nèi)容更新是為了與ISO/IEC-16262保持嚴(yán)格一致碉咆,沒有作任何新增、修改或刪節(jié)處理蛀恩。
因此疫铜,一般不使用第2版來衡量ECMAScript實(shí)現(xiàn)的兼容性。
ECMAScript 3
1999年12月發(fā)布:
是對ECMAScript標(biāo)準(zhǔn)第一次真正的修改双谆。
新增了對正則表達(dá)式块攒、新控制語句励稳、try-catch異常處理的支持,修改了字符處理囱井、錯誤定義和數(shù)值輸出等內(nèi)容驹尼。
從各方面綜合來看,第3版標(biāo)志著ECMAScript成為了一門真正的編程語言庞呕。也成為JavaScript的通行標(biāo)準(zhǔn)新翎,得到了廣泛支持。
ECMAScript 4
2007年10月ECMAScript 4.0版草案發(fā)布
對3.0版做了大幅升級住练,預(yù)計次年8月發(fā)布正式版本地啰。
草案發(fā)布后,由于4.0版的目標(biāo)過于激進(jìn)讲逛,各方對于是否通過這個標(biāo)準(zhǔn)亏吝,發(fā)生了嚴(yán)重分歧。
以Yahoo盏混、Microsoft蔚鸥、Google為首的大公司,反對JavaScript的大幅升級许赃,主張小幅改動止喷;
以JavaScript創(chuàng)造者Brendan Eich為首的Mozilla公司,則堅持當(dāng)前的草案混聊。
2008年7月ECMAScript 4.0發(fā)布前被廢棄
由于對于下一個版本應(yīng)該包括哪些功能弹谁,各方分歧太大,爭論過于激進(jìn)句喜,ECMA開會決定预愤,中止ECMAScript 4.0的開發(fā)(即廢除了這個版本)。
將其中涉及現(xiàn)有功能改善的一小部分咳胃,發(fā)布為ECMAScript3.1植康,而將其他激進(jìn)的設(shè)想擴(kuò)大范圍,放入以后的版本拙绊,由于會議的氣氛向图,該版本的項目代號起名為Harmony(和諧)泳秀。
會后不久标沪,ECMAScript 3.1就改名為ECMAScript 5。
ECMAScript 5
2009年12月發(fā)布:
ECMAScript 5.0版發(fā)布:
Harmony項目則一分為二嗜傅,
一些較為可行的設(shè)想定名為JavaScript.next繼續(xù)開發(fā)金句,后來演變成ECMAScript 6;
一些不是很成熟的設(shè)想吕嘀,則被視為JavaScript.next.next违寞,在更遠(yuǎn)的將來再考慮推出贞瞒。
TC39的總體考慮是,ECMAScript5與ECMAScript3基本保持兼容趁曼,較大的語法修正和新功能加入军浆,將由JavaScript.next完成。
(當(dāng)時挡闰,JavaScript.next指的是ECMAScript 6乒融。第六版發(fā)布以后,將指ECMAScript 7)
該版本力求澄清第3版中的歧義摄悯,并添加了新的功能赞季。
新功能包括:原生JSON對象、繼承的方法奢驯、高級屬性的定義以及引入嚴(yán)格模式申钩。
2011年6月發(fā)布:
ECMAscript 5.1版發(fā)布:
并且成為ISO國際標(biāo)準(zhǔn)(ISO/IEC16262:2011)。到了2012年底瘪阁,所有主要瀏覽器都支持ECMAScript 5.1版的全部功能
ECMAScript 6
2015年6月發(fā)布:
ECMAScript 6正式發(fā)布撒遣,并且更名為“ECMAScript 2015”。
這是因為TC39委員會計劃罗洗,以后每年發(fā)布一個ECMAScirpt的版本愉舔,下一個版本在2016年發(fā)布,稱為“ECMAScript 2016”伙菜。
從現(xiàn)在開始轩缤,新版本將按照ECMAScript+年份的形式發(fā)布。
S6是繼S5之后的一次主要改進(jìn)贩绕,語言規(guī)范由ES5.1時代的245頁擴(kuò)充至600頁火的。盡管ES6做了大量的更新,但是它依舊完全向后兼容以前的版本淑倾。
ES6增添了許多必要的特性馏鹤,新功能包括:模塊和類以及一些實(shí)用特性,例如Maps娇哆、Sets湃累、Promises、生成器(Generators)等碍讨。
參考資料: