本文完全摘自 《Understanding ECMAScript 6》oshotokill 翻譯版本的簡介
??????? 在2007年蚪战,JavaScript 已行至于交叉路口划栓。Ajax 的流行宣告了動態(tài) web 應(yīng)用時(shí)代的到來,然而 JavaScript 自1999年 ECMA-262 發(fā)布了第三版(ES3)以后便從未發(fā)生變化洋机,于是 TC-39 委員會便承擔(dān)了發(fā)布下一版的任務(wù)浇冰,收集了大批草案并命名為 ECMAScript 4贬媒。ECMAScript 4 的變革范圍十分廣泛,語言的各個(gè)部分都有大大小小的變化肘习。 添加的新特性中包括一些新語法际乘,模塊,類漂佩,傳統(tǒng)的繼承方式(classical inheritance)脖含,私有對象成員,可選類型注解(optional type annotations)投蝉,以及其它等等养葵。
??????? ECMAScript 4 的變動之大造成了 TC-39 委員會內(nèi)部的分歧,一部分成員認(rèn)為這些更改有些過火了瘩缆。于是一組來自于雅虎关拒,谷歌和微軟的成員便自行撰寫了下一代 ECMAScript 的草案,稱其為 ECMAScript 3.1 咳榜,其中 “3.1” 代表在已有標(biāo)準(zhǔn)之上的小增集夏醉。
??????? ECMAScript 3.1 的語法變動非常少爽锥,反而專注于屬性特性(property attribute)涌韩,支持原生 JSON 和在已有的對象之上添加更多方法。雖然早先曾有過 ECMAScript 3.1 與 EMCAScript 4 的融合嘗試氯夷,不過兩者之間巨大的差異和對語言發(fā)展方向認(rèn)識的不同導(dǎo)致嘗試失敗了臣樱。
??????? 2008年,JavaScript的締造者 Brendan Eich 認(rèn)定 TC-39委員會應(yīng)該專注于 ECMAScript 3.1 的標(biāo)準(zhǔn)化腮考,ECMASciprt 4 中主要的語法變化和新特性應(yīng)該擱置到下一代 ECMAScript 標(biāo)準(zhǔn)化之后雇毫。委員會的成員一起努力把 ECMAScript 3.1 和 ECMAScript 4 中的精華部分匯聚在一起,稱其為 ECMAScript Harmony 踩蔚。
??????? ECMAScript 3.1 最終作為 ECMA-262 第五版標(biāo)準(zhǔn)被發(fā)布棚放,別名為 ECMAScript 5 。委員會為了在命名上避免和已胎死腹中的 ECMAScript 4 混淆馅闽,并未發(fā)布該標(biāo)準(zhǔn)飘蚯。在那之后,以 ECMAScript Harmony 為起始福也,“harmony” 為精神的下一版標(biāo)準(zhǔn) ECMAScript 6 的發(fā)布工作正式啟動局骤。
??????? ECMAScript 6 中所有選定草案完全被標(biāo)準(zhǔn)化的日期在2015年,因此正式被更名為 “ECMAScript 2015”(不過本書仍稱其為 ECMAScript 6 暴凑,因?yàn)殚_發(fā)者對這個(gè)名字更為熟悉)峦甩。該標(biāo)準(zhǔn)中新的特性作用范圍十分廣泛,包括全新的對象類型现喳,模式以及給已有對象添加新的方法等等凯傲。 ECMAScript 6 的興奮點(diǎn)在于所有的變動都是為了解決開發(fā)者在開發(fā)過程中實(shí)際存在的問題犬辰。