始于網(wǎng)景
1994年掸掸,一家名為Mosaic Communications的公司在加州芒廷維尤成立了缸濒,并雇用了許多原來的NCSA Mosaic開發(fā)者用來開發(fā)Mosaic Netscape吟吝,該公司的目標(biāo)是取代NCSA Mosaic成為世界第一的網(wǎng)頁瀏覽器梭姓。
- 1994年底褥民,第一個(gè)版本的網(wǎng)頁瀏覽器Mosaic Netscape 0.9發(fā)布涤伐。在四個(gè)月內(nèi)盔憨,已經(jīng)占據(jù)了四分之三的瀏覽器市場徙菠,并成為1990年代互聯(lián)網(wǎng)的主要瀏覽器。但是郁岩,這個(gè)版本的瀏覽器只能用來瀏覽婿奔,不具備與訪問者互動(dòng)的能力。所以網(wǎng)景公司急需一種網(wǎng)頁腳本語言问慎,使得瀏覽器可以與訪問者互動(dòng)萍摊。
- 1995年,網(wǎng)景招募了Brendan Eich(布蘭登·艾克)如叼,目標(biāo)是把Scheme語言嵌入到Netscape Navigator瀏覽器當(dāng)中冰木。但更早之前,網(wǎng)景已經(jīng)跟昇陽合作在Netscape Navigator中支持Java,這時(shí)網(wǎng)景內(nèi)部產(chǎn)生激烈的爭論踊沸。后來網(wǎng)景決定發(fā)明一種與Java搭配使用的輔助腳本語言并且語法上有些類似歇终,這個(gè)決策導(dǎo)致排除了采用現(xiàn)有的語言,例如Perl逼龟、Python评凝、Tcl或Scheme。為了在其他競爭提案中捍衛(wèi)JavaScript這個(gè)想法腺律,公司需要有一個(gè)可以運(yùn)作的原型肥哎。
Brendan Eich(布蘭登·艾克)在1995年5月僅花了十天時(shí)間就把原型設(shè)計(jì)出來了。但是疾渣,他對(duì)Java一點(diǎn)興趣也沒有篡诽。為了應(yīng)付公司安排的任務(wù),他只用10天時(shí)間就把Javascript設(shè)計(jì)出來了榴捡。由于設(shè)計(jì)時(shí)間太短杈女,語言的一些細(xì)節(jié)考慮得不夠嚴(yán)謹(jǐn),導(dǎo)致后來很長一段時(shí)間吊圾,Javascript寫出來的程序混亂不堪达椰。
總的來說,他的設(shè)計(jì)思路是這樣的:
- 借鑒C語言的基本語法;
- 借鑒Java語言的數(shù)據(jù)類型和內(nèi)存管理;
- 借鑒Scheme語言项乒,將函數(shù)提升到"第一等公民"(first class)的地位;
- 借鑒Self語言啰劲,使用基于原型(prototype)的繼承機(jī)制。
所以檀何,Javascript語言實(shí)際上是兩種語言風(fēng)格的混合產(chǎn)物----(簡化的)函數(shù)式編程+(簡化的)面向?qū)ο缶幊逃恪_@是由Brendan Eich(函數(shù)式編程)與網(wǎng)景公司(面向?qū)ο缶幊蹋┕餐瑳Q定的。
最初命名為Mocha频鉴,1995年9月在Netscape Navigator 2.0的Beta版中改名為LiveScript栓辜,同年12月,Netscape Navigator 2.0 Beta 3中部署時(shí)被重命名為JavaScript垛孔,當(dāng)時(shí)網(wǎng)景公司與昇陽電腦公司組成的開發(fā)聯(lián)盟為了讓這門語言搭上Java這個(gè)編程語言“熱詞”藕甩,因此將其臨時(shí)改名為JavaScript,日后這成為大眾對(duì)這門語言有諸多誤解的原因之一周荐。
微軟采納
JavaScript推出后在瀏覽器上大獲成功狭莱,微軟公司在不久后就為Internet Explorer 3瀏覽器推出了JScript,以與處于市場領(lǐng)導(dǎo)地位的網(wǎng)景產(chǎn)品同臺(tái)競爭概作。
JScript也是一種JavaScript實(shí)現(xiàn)腋妙,這兩個(gè)JavaScript語言版本在瀏覽器端共存意味著語言標(biāo)準(zhǔn)化的缺失,發(fā)展初期仆嗦,JavaScript的標(biāo)準(zhǔn)并未確定辉阶,同期有網(wǎng)景的JavaScript,微軟的JScript雙峰并峙。除此之外谆甜,微軟也在網(wǎng)頁技術(shù)上加入了不少專屬對(duì)象垃僚,使不少網(wǎng)頁使用非微軟平臺(tái)及瀏覽器無法正常顯示,導(dǎo)致在瀏覽器大戰(zhàn)期間網(wǎng)頁設(shè)計(jì)者通常會(huì)把“用Netscape可達(dá)到最佳效果”或“用IE可達(dá)到最佳效果”的標(biāo)志放在主頁规辱。
隨著Internet Explorer 4的發(fā)布谆棺,微軟引入了動(dòng)態(tài)HTML的概念,但語言實(shí)現(xiàn)和不同專有化的文檔對(duì)象模型的差異仍然存在罕袋,成為網(wǎng)絡(luò)上普及使用JavaScript的阻礙改淑。
標(biāo)準(zhǔn)化
- 1996年11月,網(wǎng)景正式向ECMA(歐洲計(jì)算機(jī)制造商協(xié)會(huì))提交語言標(biāo)準(zhǔn)浴讯。
- 1997年6月朵夏,ECMA以JavaScript語言為基礎(chǔ)制定了ECMAScript標(biāo)準(zhǔn)規(guī)范ECMA-262。
JavaScript成為了ECMAScript最著名的實(shí)現(xiàn)之一榆纽。除此之外仰猖,ActionScript和JScript也都是ECMAScript規(guī)范的實(shí)現(xiàn)語言。盡管JavaScript作為給非程序人員的腳本語言奈籽,而非作為給程序人員的腳本語言來推廣和宣傳饥侵,但是JavaScript具有非常豐富的特性。
發(fā)展
- 1996年8月衣屏,微軟發(fā)布了IE3躏升,推出JScript(其實(shí)與JavaScript相似)。
- 1996年11月狼忱,網(wǎng)景公司開始反擊膨疏,正式向ECMA(歐洲計(jì)算機(jī)制造商協(xié)會(huì))提交語言標(biāo)準(zhǔn)。
- 1997年6月藕赞,第一個(gè)國際標(biāo)準(zhǔn)ECMA-262正式頒布成肘。
- 1999年12月,發(fā)布了第三版斧蜕,使用最廣,之后第四版流產(chǎn)砚偶。
- 2009年12月批销,第五版發(fā)布,增加了一些功能(由于瀏覽器大戰(zhàn)染坯,導(dǎo)致JavaScript的緩慢發(fā)展)均芽。
- 2015年6月,第六版發(fā)布单鹿,新瀏覽器都支持這一版掀宋。
- 之后每年更新一版,版本號(hào)以年份命名。