title: JavaScript的歷史
layout: page
category: introduction
date: 2013-01-10
modifiedOn: 2013-12-05
聲明,這是阮一峰老師的文章阅羹,附上鏈接:
http://javascript.ruanyifeng.com/introduction/history.html
理解現(xiàn)在的最好方法之一,就是了解歷史博投,本節(jié)將全面介紹JavaScript的歷史。了解這些內(nèi)容蝇摸,還有助于把握J(rèn)avaScript在整個(gè)計(jì)算機(jī)編程體系和計(jì)算機(jī)工業(yè)中所處的位置免猾,以及涉及的全部范圍。
JavaScript的誕生
JavaScript因?yàn)榛ヂ?lián)網(wǎng)而生汁展,緊隨著瀏覽器的出現(xiàn)而問(wèn)世。回顧它的歷史食绿,就要從瀏覽器的歷史講起侈咕。
1990年底,歐洲核能研究組織(CERN)科學(xué)家Tim Berners-Lee器紧,在全世界最大的電腦網(wǎng)絡(luò)——互聯(lián)網(wǎng)的基礎(chǔ)上耀销,發(fā)明了萬(wàn)維網(wǎng)(World Wide Web),從此可以在網(wǎng)上瀏覽網(wǎng)頁(yè)文件铲汪。最早的網(wǎng)頁(yè)只能在操作系統(tǒng)的終端里瀏覽熊尉,也就是說(shuō)只能使用命令行操作,網(wǎng)頁(yè)都是在字符窗口中顯示掌腰,這當(dāng)然非常不方便帽揪。
1992年底,美國(guó)國(guó)家超級(jí)電腦應(yīng)用中心(NCSA)開(kāi)始開(kāi)發(fā)一個(gè)獨(dú)立的瀏覽器辅斟,叫做Mosaic。這是人類歷史上第一個(gè)瀏覽器芦拿,從此網(wǎng)頁(yè)可以在圖形界面的窗口瀏覽士飒。
1994年10月,NCSA的一個(gè)主要程序員Marc Andreessen聯(lián)合風(fēng)險(xiǎn)投資家Jim Clark蔗崎,成立了Mosaic通信公司(Mosaic Communications)酵幕,不久后改名為Netscape。這家公司的方向缓苛,就是在Mosaic的基礎(chǔ)上芳撒,開(kāi)發(fā)面向普通用戶的新一代的瀏覽器Netscape Navigator。
1994年12月未桥,Navigator發(fā)布了1.0版笔刹,市場(chǎng)份額一舉超過(guò)90%。
Netscape公司很快發(fā)現(xiàn)冬耿,Navigator瀏覽器需要一種可以嵌入網(wǎng)頁(yè)的腳本語(yǔ)言舌菜,用來(lái)控制瀏覽器行為。當(dāng)時(shí)亦镶,網(wǎng)速很慢而且上網(wǎng)費(fèi)很貴日月,有些操作不宜在服務(wù)器端完成。比如缤骨,如果用戶忘記填寫“用戶名”爱咬,就點(diǎn)了“發(fā)送”按鈕,到服務(wù)器再發(fā)現(xiàn)這一點(diǎn)就有點(diǎn)太晚了绊起,最好能在用戶發(fā)出數(shù)據(jù)之前精拟,就告訴用戶“請(qǐng)?zhí)顚憍x欄”。這就需要在網(wǎng)頁(yè)中嵌入小程序,讓瀏覽器檢查每一欄是否都填寫了串前。
管理層對(duì)這種瀏覽器腳本語(yǔ)言的設(shè)想是:功能不需要太強(qiáng)瘫里,語(yǔ)法較為簡(jiǎn)單,容易學(xué)習(xí)和部署荡碾。那一年谨读,正逢Java語(yǔ)言開(kāi)始推向市場(chǎng),Netscape公司決定坛吁,腳本語(yǔ)言的語(yǔ)法要接近Java劳殖,并且可以支持Java程序。這些設(shè)想直接排除了使用現(xiàn)存語(yǔ)言拨脉,比如perl哆姻、python和TCL。
1995年玫膀,Netscape公司雇傭了程序員Brendan Eich開(kāi)發(fā)這種網(wǎng)頁(yè)腳本語(yǔ)言矛缨。Brendan Eich有很強(qiáng)的函數(shù)式編程背景,希望以Scheme語(yǔ)言(函數(shù)式語(yǔ)言鼻祖LISP語(yǔ)言的一種方言)為藍(lán)本帖旨,實(shí)現(xiàn)這種新語(yǔ)言箕昭。
1995年5月,Brendan Eich只用了10天解阅,就設(shè)計(jì)完成了這種語(yǔ)言的第一版落竹。它是一個(gè)大雜燴,語(yǔ)法有多個(gè)來(lái)源:
- 基本語(yǔ)法:借鑒C語(yǔ)言和Java語(yǔ)言货抄。
- 數(shù)據(jù)結(jié)構(gòu):借鑒Java語(yǔ)言述召,包括將值分成原始值和對(duì)象兩大類。
- 函數(shù)的用法:借鑒Scheme語(yǔ)言和Awk語(yǔ)言蟹地,將函數(shù)當(dāng)作第一等公民积暖,并引入閉包。
- 原型繼承模型:借鑒Self語(yǔ)言(Smalltalk的一種變種)怪与。
- 正則表達(dá)式:借鑒Perl語(yǔ)言呀酸。
- 字符串和數(shù)組處理:借鑒Python語(yǔ)言。
為了保持簡(jiǎn)單琼梆,這種腳本語(yǔ)言缺少一些關(guān)鍵的功能性誉,比如塊級(jí)作用域、模塊茎杂、子類型(subtyping)等等错览,但是可以利用現(xiàn)有功能找出解決辦法。這種功能的不足煌往,直接導(dǎo)致了后來(lái)JavaScript的一個(gè)顯著特點(diǎn):對(duì)于其他語(yǔ)言倾哺,你需要學(xué)習(xí)語(yǔ)言的各種功能轧邪,而對(duì)于JavaScript,你常常需要學(xué)習(xí)各種解決問(wèn)題的模式羞海。而且由于來(lái)源多樣忌愚,從一開(kāi)始就注定,JavaScript的編程風(fēng)格是函數(shù)式編程和面向?qū)ο缶幊痰囊环N混合體却邓。
Netscape公司的這種瀏覽器腳本語(yǔ)言硕糊,最初名字叫做Mocha,1995年9月改為L(zhǎng)iveScript腊徙。12月简十,Netscape公司與Sun公司(Java語(yǔ)言的發(fā)明者和所有者)達(dá)成協(xié)議,后者允許將這種語(yǔ)言叫做JavaScript撬腾。這樣一來(lái)螟蝙,Netscape公司可以借助Java語(yǔ)言的聲勢(shì),而Sun公司則將自己的影響力擴(kuò)展到了瀏覽器民傻。
之所以起這個(gè)名字胰默,并不是因?yàn)镴avaScript本身與Java語(yǔ)言有多么深的關(guān)系(事實(shí)上,兩者關(guān)系并不深)漓踢,而是因?yàn)镹etscape公司已經(jīng)決定初坠,使用Java語(yǔ)言開(kāi)發(fā)網(wǎng)絡(luò)應(yīng)用程序,JavaScript可以像膠水一樣彭雾,將各個(gè)部分連接起來(lái)。當(dāng)然锁保,后來(lái)的歷史是Java語(yǔ)言的瀏覽器插件(applet)失敗了薯酝,JavaScript反而發(fā)揚(yáng)光大。
JavaScript的發(fā)布和標(biāo)準(zhǔn)化
1995年12月4日爽柒,Netscape公司與Sun公司聯(lián)合發(fā)布了JavaScript語(yǔ)言吴菠。值得一提的是,17天之后Ruby語(yǔ)言也發(fā)布了它的第一個(gè)版本浩村。
1996年3月做葵,Navigator 2.0瀏覽器正式內(nèi)置了JavaScript腳本語(yǔ)言。
1996年8月心墅,微軟模仿JavaScript開(kāi)發(fā)了一種相近的語(yǔ)言酿矢,取名為JScript(JavaScript是Netscape的注冊(cè)商標(biāo),微軟不能用)怎燥,首先內(nèi)置于IE 3.0瘫筐。網(wǎng)景公司面臨喪失瀏覽器腳本語(yǔ)言的主導(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ī)定了瀏覽器腳本語(yǔ)言的標(biāo)準(zhǔn),并將這種語(yǔ)言稱為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)這門語(yǔ)言的制定者是ECMA,不是Netscape古胆,這樣有利于保證這門語(yǔ)言的開(kāi)放性和中立性肆良。因此,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)過(guò)于激進(jìn)筐付,各方對(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ò)于激進(jìn)届慈,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)再考慮推出灶伊。
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)取各方反饋征冷。
2014年12月,ECMAScript 6預(yù)計(jì)將發(fā)布正式版本誓琼。
TC39的總體考慮是检激,ECMAScript 5與ECMAScript 3基本保持兼容肴捉,較大的語(yǔ)法修正和新功能加入,將由JavaScript.next完成叔收。當(dāng)前齿穗,JavaScript.next指的是ECMAScript 6,當(dāng)?shù)诹姘l(fā)布以后饺律,將指ECMAScript 7窃页。 TC39預(yù)計(jì),ECMAScript 5會(huì)在2013年的年中成為Javascript開(kāi)發(fā)的主流標(biāo)準(zhǔn)复濒,并在今后五年中一直保持這個(gè)位置脖卖。
雖然ECMAScript是JavaScript的標(biāo)準(zhǔn),但是Netscape公司(以及后來(lái)的Mozilla基金會(huì))在內(nèi)部依然使用自己的版本號(hào)巧颈。這導(dǎo)致了JavaScript有自己不同于ECMAScript的版本號(hào)畦木。
1996年3月,Navigator 2.0內(nèi)置了JavaScript 1.0洛二。
1996年8月馋劈,Navigator 3.0內(nèi)置了JavaScript 1.1。
1997年6月晾嘶,Navigator 4.0內(nèi)置了JavaScript 1.2妓雾。
1998年10月,Navigator 4.06內(nèi)置了JavaScript 1.3垒迂。
1999年械姻,Netscape服務(wù)器版提供JavaScript 1.4。
2000年11月机断,Navigator 6.0內(nèi)置了JavaScript 1.5楷拳。
2005年11月,F(xiàn)irefox 1.5內(nèi)置了JavaScript 1.6吏奸。
2006年10月欢揖,F(xiàn)irfox 2.0內(nèi)置了JavaScript 1.7。
2008年6月奋蔚,F(xiàn)irefox 3.0內(nèi)置了JavaScript 1.8她混。
JavaScript 1.1版對(duì)應(yīng)ECMAScript 1.0,但是直到JavaScript 1.4版才完全兼容ECMAScript 1.0泊碑。JavaScript 1.5版完全兼容ECMAScript 3.0坤按。目前的JavaScript 1.8版完全兼容ECMAScript 5。
截止2013年初馒过,所有瀏覽器的最新版本——Chrome 24臭脓,F(xiàn)irefox 19,IE 10.0腹忽,Opera 12来累,Safari 6——都支持ECMAScript 5.1版砚作。
周邊大事記
1996年,樣式表標(biāo)準(zhǔn)CSS第一版發(fā)布佃扼。
1997年偎巢,DHTML(Dynamic HTML,動(dòng)態(tài)HTML)發(fā)布兼耀,允許動(dòng)態(tài)改變網(wǎng)頁(yè)內(nèi)容压昼。這標(biāo)志著DOM模式(Document Object Model,文檔對(duì)象模型)正式應(yīng)用瘤运。
1998年窍霞,Netscape公司開(kāi)源了瀏覽器套件,這導(dǎo)致了Mozilla項(xiàng)目的誕生拯坟。幾個(gè)月后但金,美國(guó)在線(AOL)宣布并購(gòu)Netscape。
1999年郁季,IE 5部署了XMLHttpRequest接口冷溃,允許Javascript發(fā)出HTTP請(qǐng)求,為后來(lái)大行其道的Ajax應(yīng)用創(chuàng)造了條件梦裂。
2000年似枕,KDE項(xiàng)目重寫了瀏覽器引擎KHTML,為后來(lái)的WebKit和Blink引擎打下基礎(chǔ)年柠。這一年的10月23日凿歼,KDE 2.0發(fā)布,第一次將KHTML瀏覽器包括其中冗恨。
2001年答憔,微軟公司時(shí)隔5年之后,發(fā)布了IE瀏覽器的下一個(gè)版本Internet Explorer 6掀抹。這是當(dāng)時(shí)最先進(jìn)的瀏覽器虐拓,它后來(lái)統(tǒng)治了瀏覽器市場(chǎng)多年。
2001年傲武,Douglas Crockford提出了JSON格式蓉驹,用于取代XML格式,進(jìn)行服務(wù)器和網(wǎng)頁(yè)之間的數(shù)據(jù)交換谱轨。JavaScript可以原生支持這種格式戒幔,不需要額外部署代碼吠谢。
2002年土童,Mozilla項(xiàng)目發(fā)布了它的瀏覽器的第一版,后來(lái)起名為Firefox工坊。
2003年献汗,蘋果公司發(fā)布了Safari瀏覽器的第一版敢订。
2004年,Google公司發(fā)布了Gmail罢吃,促成了互聯(lián)網(wǎng)應(yīng)用程序(Web Application)這個(gè)概念的誕生楚午。由于Gmail是在4月1日發(fā)布的,很多人起初以為這只是一個(gè)玩笑尿招。
2004年矾柜,Dojo框架誕生,為不同瀏覽器提供了同一接口就谜,并為主要功能提供了便利的調(diào)用方法怪蔑。這標(biāo)志著JavaScript編程框架的時(shí)代開(kāi)始來(lái)臨。
2004年丧荐,WHATWG組織成立缆瓣,致力于加速HTML語(yǔ)言的標(biāo)準(zhǔn)化進(jìn)程。
2005年虹统,蘋果公司在KHTML引擎基礎(chǔ)上弓坞,建立了WebKit引擎。
2005年车荔,Ajax方法(Asynchronous Javascript and XML)正式誕生渡冻,Jesse James Garrett發(fā)明了這個(gè)詞匯。它開(kāi)始流行的標(biāo)志是夸赫,2月份發(fā)布的Google Maps項(xiàng)目大量采用該方法菩帝。它幾乎成了新一代網(wǎng)站的標(biāo)準(zhǔn)做法,促成了Web 2.0時(shí)代的來(lái)臨茬腿。
2005年呼奢,Apache基金會(huì)發(fā)布了CouchDB數(shù)據(jù)庫(kù)。這是一個(gè)基于JSON格式的數(shù)據(jù)庫(kù)切平,可以用Javascript函數(shù)定義視圖和索引握础。它在本質(zhì)上有別于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),標(biāo)識(shí)著NoSQL類型的數(shù)據(jù)庫(kù)誕生悴品。
2006年禀综,jQuery函數(shù)庫(kù)誕生,作者為John Resig苔严。jQuery為操作網(wǎng)頁(yè)DOM結(jié)構(gòu)提供了非常強(qiáng)大易用的接口定枷,成為了使用最廣泛的函數(shù)庫(kù),并且讓Javascript語(yǔ)言的應(yīng)用難度大大降低届氢,推動(dòng)了這種語(yǔ)言的流行欠窒。
2006年,微軟公司發(fā)布IE 7退子,標(biāo)志重新開(kāi)始啟動(dòng)瀏覽器的開(kāi)發(fā)岖妄。
2006年型将,Google推出 Google Web Toolkit 項(xiàng)目(縮寫為GWT),提供Java編譯成JavaScript的功能荐虐,開(kāi)創(chuàng)了將其他語(yǔ)言轉(zhuǎn)為JavaScript的先河七兜。
2007年,Webkit引擎在iPhone手機(jī)中得到部署福扬。它最初基于KDE項(xiàng)目腕铸,2003年蘋果公司首先采用,2005年開(kāi)源铛碑。這標(biāo)志著Javascript語(yǔ)言開(kāi)始能在手機(jī)中使用了恬惯,意味著有可能寫出在桌面電腦和手機(jī)中都能使用的程序。
2007年亚茬,Douglas Crockford發(fā)表了名為《JavaScript: The good parts》的演講酪耳,次年由O'Reilly出版社出版。這標(biāo)志著軟件行業(yè)開(kāi)始嚴(yán)肅對(duì)待JavaScript語(yǔ)言刹缝,對(duì)它的語(yǔ)法開(kāi)始重新認(rèn)識(shí)碗暗,
2008年,V8編譯器誕生梢夯。這是Google公司為Chrome瀏覽器而開(kāi)發(fā)的言疗,它的特點(diǎn)是讓Javascript的運(yùn)行變得非常快颂砸。它提高了JavaScript的性能噪奄,推動(dòng)了語(yǔ)法的改進(jìn)和標(biāo)準(zhǔn)化,改變外界對(duì)JavaScript的不佳印象人乓。同時(shí)勤篮,V8是開(kāi)源的,任何人想要一種快速的嵌入式腳本語(yǔ)言色罚,都可以采用V8碰缔,這拓展了JavaScript的應(yīng)用領(lǐng)域。
2009年戳护,Node.js項(xiàng)目誕生金抡,創(chuàng)始人為Ryan Dahl,它標(biāo)志著Javascript可以用于服務(wù)器端編程腌且,從此網(wǎng)站的前端和后端可以使用同一種語(yǔ)言開(kāi)發(fā)梗肝。并且,Node.js可以承受很大的并發(fā)流量铺董,使得開(kāi)發(fā)某些互聯(lián)網(wǎng)大規(guī)模的實(shí)時(shí)應(yīng)用變得容易巫击。
2009年,Jeremy Ashkenas發(fā)布了CoffeeScript的最初版本。CoffeeScript可以被轉(zhuǎn)化為JavaScript運(yùn)行喘鸟,但是語(yǔ)法要比JavaScript簡(jiǎn)潔。這開(kāi)啟了其他語(yǔ)言轉(zhuǎn)為JavaScript的風(fēng)潮驻右。
2009年什黑,PhoneGap項(xiàng)目誕生,它將HTML5和JavaScript引入移動(dòng)設(shè)備的應(yīng)用程序開(kāi)發(fā)堪夭,主要針對(duì)iOS和Android平臺(tái)愕把,使得JavaScript可以用于跨平臺(tái)的應(yīng)用程序開(kāi)發(fā)。
2010年森爽,三個(gè)重要的項(xiàng)目誕生恨豁,分別是NPM、BackboneJS和RequireJS爬迟,標(biāo)志著JavaScript進(jìn)入模塊化開(kāi)發(fā)的時(shí)代橘蜜。
2011年,微軟公司發(fā)布Windows 8操作系統(tǒng)付呕,將JavaScript作為應(yīng)用程序的開(kāi)發(fā)語(yǔ)言之一计福,直接提供系統(tǒng)支持。
2011年徽职,Google發(fā)布了Dart語(yǔ)言象颖,目的是為了結(jié)束JavaScript語(yǔ)言在瀏覽器中的壟斷,提供更合理姆钉、更強(qiáng)大的語(yǔ)法和功能说订。Chromium瀏覽器有內(nèi)置的Dart虛擬機(jī),可以運(yùn)行Dart程序潮瓶,但Dart程序也可以被編譯成JavaScript程序運(yùn)行陶冷。
2011年,微軟工程師Scott Hanselman提出毯辅,JavaScript將是互聯(lián)網(wǎng)的匯編語(yǔ)言埃叭。因?yàn)樗鼰o(wú)所不在,而且正在變得越來(lái)越快悉罕。其他語(yǔ)言的程序可以被轉(zhuǎn)成JavaScript語(yǔ)言赤屋,然后在瀏覽器中運(yùn)行。
2012年壁袄,單頁(yè)面應(yīng)用程序框架(single-page app framework)開(kāi)始崛起类早,AngularJS項(xiàng)目和Ember項(xiàng)目都發(fā)布了1.0版本。
2012年嗜逻,微軟發(fā)布TypeScript語(yǔ)言涩僻。該語(yǔ)言被設(shè)計(jì)成JavaScript的超集,這意味著所有JavaScipt程序,都可以不經(jīng)修改地在TypeScript中運(yùn)行逆日。同時(shí)嵌巷,TypeScript添加了很多新的語(yǔ)法特性,主要目的是為了開(kāi)發(fā)大型程序室抽,然后還可以被編譯成JavaScript運(yùn)行搪哪。
2012年,Mozilla基金會(huì)提出asm.js規(guī)格坪圾。asm.js是JavaScript的一個(gè)子集晓折,所有符合asm.js的程序都可以在瀏覽器中運(yùn)行,它的特殊之處在于語(yǔ)法有嚴(yán)格限定兽泄,可以被快速編譯成性能良好的機(jī)器碼漓概。這樣做的目的,是為了給其他語(yǔ)言提供一個(gè)編譯規(guī)范病梢,使其可以被編譯成高效的JavaScript代碼胃珍。同時(shí),Mozilla基金會(huì)還發(fā)起了Emscripten項(xiàng)目蜓陌,目標(biāo)就是提供一個(gè)跨語(yǔ)言的編譯器堂鲜,能夠?qū)LVM的位代碼(bitcode)轉(zhuǎn)為JavaScript代碼,在瀏覽器中運(yùn)行护奈。因?yàn)榇蟛糠諰LVM位代碼都是從C / C++語(yǔ)言生成的缔莲,這意味著C / C++將可以在瀏覽器中運(yùn)行。此外霉旗,Mozilla旗下還有LLJS(將JavaScript轉(zhuǎn)為C代碼)項(xiàng)目和River Trail(一個(gè)用于多核心處理器的ECMAScript擴(kuò)展)項(xiàng)目痴奏。目前,在可以被編譯成JavaScript的語(yǔ)言列表上厌秒,共有將近40種語(yǔ)言读拆。
2013年,Mozilla基金會(huì)發(fā)布手機(jī)操作系統(tǒng)Firefox OS鸵闪,該操作系統(tǒng)的整個(gè)用戶界面都使用JavaScript檐晕。
2013年,ECMA正式推出JSON的國(guó)際標(biāo)準(zhǔn)蚌讼,這意味著JSON格式已經(jīng)變得與XML格式一樣重要和正式了辟灰。
2014年,微軟推出JavaScript的Windows庫(kù)WinJS篡石,標(biāo)志微軟公司全面支持JavaScript與Windows操作系統(tǒng)的融合芥喇。
參考鏈接
- Axel Rauschmayer, The Past, Present, and Future of JavaScript
- John Dalziel, The race for speed part 4: The future for JavaScript
- Axel Rauschmayer, Basic JavaScript for the impatient programmer
- resin.io, Happy 18th Birthday JavaScript! A look at an unlikely past and bright future