ES6從開(kāi)始制定到最后發(fā)布,整整用了15年。
前面提到,ECMAScript 1.0是1997年發(fā)布的,接下來(lái)的兩年,連續(xù)發(fā)布了ECMAScript 2.0(1998年6月)和ECMAScript 3.0(1999年12月)。3.0版是一個(gè)巨大的成功,在業(yè)界得到廣泛支持,成為通行標(biāo)準(zhǔn),奠定了JavaScript語(yǔ)言的基本語(yǔ)法,以后的版本完全繼承。直到今天,初學(xué)者一開(kāi)始學(xué)習(xí)JavaScript,其實(shí)就是在學(xué)3.0版的語(yǔ)法。
2000年,ECMAScript 4.0開(kāi)始醞釀。這個(gè)版本最后沒(méi)有通過(guò),但是它的大部分內(nèi)容被ES6繼承了。因此,ES6制定的起點(diǎn)其實(shí)是2000年。
為什么ES4沒(méi)有通過(guò)呢?因?yàn)檫@個(gè)版本太激進(jìn)了,對(duì)ES3做了徹底升級(jí),導(dǎo)致標(biāo)準(zhǔn)委員會(huì)的一些成員不愿意接受。ECMA的第39號(hào)技術(shù)專家委員會(huì)(Technical Committee 39,簡(jiǎn)稱TC39)負(fù)責(zé)制訂ECMAScript標(biāo)準(zhǔn),成員包括Microsoft、Mozilla、Google等大公司。
2007年10月,ECMAScript 4.0版草案發(fā)布,本來(lái)預(yù)計(jì)次年8月發(fā)布正式版本。但是,各方對(duì)于是否通過(guò)這個(gè)標(biāo)準(zhǔn),發(fā)生了嚴(yán)重分歧。以Yahoo、Microsoft、Google為首的大公司,反對(duì)JavaScript的大幅升級(jí),主張小幅改動(dòng);以JavaScript創(chuàng)造者Brendan Eich為首的Mozilla公司,則堅(jiān)持當(dāng)前的草案。
2008年7月,由于對(duì)于下一個(gè)版本應(yīng)該包括哪些功能,各方分歧太大,爭(zhēng)論過(guò)于激烈,ECMA開(kāi)會(huì)決定,中止ECMAScript 4.0的開(kāi)發(fā),將其中涉及現(xiàn)有功能改善的一小部分,發(fā)布為ECMAScript 3.1,而將其他激進(jìn)的設(shè)想擴(kuò)大范圍,放入以后的版本,由于會(huì)議的氣氛,該版本的項(xiàng)目代號(hào)起名為Harmony(和諧)。會(huì)后不久,ECMAScript 3.1就改名為ECMAScript 5。
2009年12月,ECMAScript 5.0版正式發(fā)布。Harmony項(xiàng)目則一分為二,一些較為可行的設(shè)想定名為JavaScript.next繼續(xù)開(kāi)發(fā),后來(lái)演變成ECMAScript 6;一些不是很成熟的設(shè)想,則被視為JavaScript.next.next,在更遠(yuǎn)的將來(lái)再考慮推出。TC39委員會(huì)的總體考慮是,ES5與ES3基本保持兼容,較大的語(yǔ)法修正和新功能加入,將由JavaScript.next完成。當(dāng)時(shí),JavaScript.next指的是ES6,第六版發(fā)布以后,就指ES7。TC39的判斷是,ES5會(huì)在2013年的年中成為JavaScript開(kāi)發(fā)的主流標(biāo)準(zhǔn),并在此后五年中一直保持這個(gè)位置。
2011年6月,ECMAscript 5.1版發(fā)布,并且成為ISO國(guó)際標(biāo)準(zhǔn)(ISO/IEC 16262:2011)。
2013年3月,ECMAScript 6草案凍結(jié),不再添加新功能。新的功能設(shè)想將被放到ECMAScript 7。
2013年12月,ECMAScript 6草案發(fā)布。然后是12個(gè)月的討論期,聽(tīng)取各方反饋。
2015年6月,ECMAScript 6正式通過(guò),成為國(guó)際標(biāo)準(zhǔn)。從2000年算起,這時(shí)已經(jīng)過(guò)去了15年。
掃一掃 加微信咨詢