前端技術(shù)(一)ES6/ES2015歷史介紹

HTML/Javascript/CSS號(hào)稱前端三大利器,我們今天要講的就是最像一門計(jì)算機(jī)語言的Javascript。那講Javascript,為什么標(biāo)題是ES6/ES2015,這個(gè)ES是什么東東呢?和Javascript有什么關(guān)系呢?

JavaScript

Javascript的前世今生

話說還得從Javascript的前世今生說起。首先眾所周知,工作于 Netscape 的 Brendan Eich,開始著手為即將在 1995 年發(fā)行的 Netscape Navigator 2.0 開發(fā)一個(gè)稱之為 LiveScript 的腳本語言,當(dāng)時(shí)的目的是在瀏覽器和服務(wù)器(本來要叫它 LiveWire)端使用它。Netscape 與 Sun 及時(shí)完成 LiveScript 實(shí)現(xiàn)。就在 Netscape Navigator 2.0 即將正式發(fā)布前,Netscape 將其更名為 JavaScript,目的是為了利用 Java 這個(gè)因特網(wǎng)時(shí)髦詞匯。Netscape 的賭注最終得到回報(bào),JavaScript 從此變成了因特網(wǎng)的必備組件。從本質(zhì)上來說JavaScript和Java沒什么關(guān)系。

隨后1996年8月,微軟模仿JavaScript開發(fā)了一種相近的語言,取名為JScript(JavaScript是Netscape的注冊(cè)商標(biāo),微軟不能用),首先內(nèi)置于IE 3.0。網(wǎng)景公司面臨喪失瀏覽器腳本語言的主導(dǎo)權(quán)的局面。

1996年11月,網(wǎng)景公司決定將JavaScript提交給國(guó)際標(biāo)準(zhǔn)化組織ECMA,希望JavaScript能夠成為國(guó)際標(biāo)準(zhǔn),以此抵抗微軟。

1997年7月,ECMA組織發(fā)布262號(hào)標(biāo)準(zhǔn)文件(ECMA-262)的第一版,規(guī)定了瀏覽器腳本語言的標(biāo)準(zhǔn),并將這種語言稱為ECMAScript。這個(gè)版本就是ECMAScript 1.0版。之所以不叫JavaScript,一方面是由于商標(biāo)的關(guān)系,Java是Sun公司的商標(biāo),根據(jù)一份授權(quán)協(xié)議,只有Netscape公司可以合法地使用JavaScript這個(gè)名字,且JavaScript已經(jīng)被Netscape公司注冊(cè)為商標(biāo),另一方面也是想體現(xiàn)這門語言的制定者是ECMA,不是Netscape,這樣有利于保證這門語言的開放性和中立性。因此,ECMAScript和JavaScript的關(guān)系是,前者是后者的規(guī)格,后者是前者的一種實(shí)現(xiàn)。在日常場(chǎng)合,這兩個(gè)詞是可以互換的。

1998年6月,ECMAScript 2.0版發(fā)布。

1999年12月,ECMAScript 3.0版發(fā)布,成為JavaScript的通行標(biāo)準(zhǔn),得到了廣泛支持。

ECMAScript和JavaScript的版本

2007年10月,ECMAScript 4.0版草案發(fā)布,對(duì)3.0版做了大幅升級(jí),預(yù)計(jì)次年8月發(fā)布正式版本。草案發(fā)布后,由于4.0版的目標(biāo)過于激進(jìn),各方對(duì)于是否通過這個(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)論過于激進(jìn),ECMA開會(huì)決定,中止ECMAScript 4.0的開發(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ù)開發(fā),后來演變成ECMAScript 6;一些不是很成熟的設(shè)想,則被視為JavaScript.next.next,在更遠(yuǎn)的將來再考慮推出。

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è)月的討論期,聽取各方反饋。

2015年6月,ECMAScript 6的第一個(gè)版本終于正式發(fā)布,它的目標(biāo),是使得 JavaScript 語言可以用來編寫復(fù)雜的大型應(yīng)用程序,成為企業(yè)級(jí)開發(fā)語言。而ES2015 則是至當(dāng)時(shí)發(fā)布的第一個(gè)版本的正式名稱,特指該年發(fā)布的正式版本的語言標(biāo)準(zhǔn)。

說實(shí)話,感覺ES2015發(fā)布真的好累。但是為什么大家打架打的這么厲害呢,還得了解一下當(dāng)時(shí)Javscript在各個(gè)方面迅速發(fā)展的大背景。

Javscript的迅速發(fā)展

2008年,V8編譯器誕生。這是Google公司為Chrome瀏覽器而開發(fā)的,它的特點(diǎn)是讓Javascript的運(yùn)行變得非常快。它提高了JavaScript的性能,推動(dòng)了語法的改進(jìn)和標(biāo)準(zhǔn)化,改變外界對(duì)JavaScript的不佳印象。同時(shí),V8是開源的,任何人想要一種快速的嵌入式腳本語言,都可以采用V8,這拓展了JavaScript的應(yīng)用領(lǐng)域。

2009年,Node.js項(xiàng)目誕生,創(chuàng)始人為Ryan Dahl,它標(biāo)志著Javascript可以用于服務(wù)器端編程,從此網(wǎng)站的前端和后端可以使用同一種語言開發(fā)。并且,Node.js可以承受很大的并發(fā)流量,使得開發(fā)某些互聯(lián)網(wǎng)大規(guī)模的實(shí)時(shí)應(yīng)用變得容易。

2009年,Jeremy Ashkenas發(fā)布了CoffeeScript的最初版本。CoffeeScript可以被轉(zhuǎn)化為JavaScript運(yùn)行,但是語法要比JavaScript簡(jiǎn)潔。這開啟了其他語言轉(zhuǎn)為JavaScript的風(fēng)潮。

2009年,PhoneGap項(xiàng)目誕生,它將HTML5和JavaScript引入移動(dòng)設(shè)備的應(yīng)用程序開發(fā),主要針對(duì)iOS和Android平臺(tái),使得JavaScript可以用于跨平臺(tái)的應(yīng)用程序開發(fā)。

2010年,三個(gè)重要的項(xiàng)目誕生,分別是NPM、BackboneJS和RequireJS,標(biāo)志著JavaScript進(jìn)入模塊化開發(fā)的時(shí)代。

2011年,微軟公司發(fā)布Windows 8操作系統(tǒng),將JavaScript作為應(yīng)用程序的開發(fā)語言之一,直接提供系統(tǒng)支持。

2011年,Google發(fā)布了Dart語言,目的是為了結(jié)束JavaScript語言在瀏覽器中的壟斷,提供更合理、更強(qiáng)大的語法和功能。Chromium瀏覽器有內(nèi)置的Dart虛擬機(jī),可以運(yùn)行Dart程序,但Dart程序也可以被編譯成JavaScript程序運(yùn)行。

2011年,微軟工程師Scott Hanselman提出,JavaScript將是互聯(lián)網(wǎng)的匯編語言。因?yàn)樗鼰o所不在,而且正在變得越來越快。其他語言的程序可以被轉(zhuǎn)成JavaScript語言,然后在瀏覽器中運(yùn)行。

2012年,單頁(yè)面應(yīng)用程序框架(single-page app framework)開始崛起,AngularJS項(xiàng)目和Ember項(xiàng)目都發(fā)布了1.0版本。

2012年,微軟發(fā)布TypeScript語言。該語言被設(shè)計(jì)成JavaScript的超集,這意味著所有JavaScipt程序,都可以不經(jīng)修改地在TypeScript中運(yùn)行。同時(shí),TypeScript添加了很多新的語法特性,主要目的是為了開發(fā)大型程序,然后還可以被編譯成JavaScript運(yùn)行。

可以說Google的V8給Javascript注入了一股強(qiáng)心劑,讓Javascript開始變得成為一門高性能的語言,隨后成為各個(gè)領(lǐng)域應(yīng)用的推手。而后各大公司都開始推出自己的Javascript語言版本,進(jìn)入了群雄爭(zhēng)霸的局面。自然這種情況是不利于語言的統(tǒng)一發(fā)展的。而國(guó)際標(biāo)準(zhǔn)化組織ECMA的標(biāo)準(zhǔn)版本ECMAScript2015才被寄予厚望,希望能夠讓Javascript成為一門真正廣泛應(yīng)用的企業(yè)級(jí)開發(fā)語言。

參考文獻(xiàn)

1、http://es6.ruanyifeng.com/#docs/intro
2、http://www.itdecent.cn/p/1cd0b2cb3ec4

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容