JavaScript 的誕生

JavaScript因?yàn)榛ヂ?lián)網(wǎng)而生,緊隨著瀏覽器的出現(xiàn)而問世〈氛希回顧它的歷史,就要從瀏覽器的歷史講起端考。

此處我們使用時間線的形式雅潭,簡單回顧這段輝煌的歷史:

1990年底,歐洲核能研究組織却特,發(fā)明了萬維網(wǎng)(World Wide Web)扶供。
1992年底,美國國家超級電腦應(yīng)用中心(NCSA)裂明,開發(fā)了第一個瀏覽器椿浓,Mosaic。
1994年10月闽晦,Mosaic通信公司成立扳碍,不久后改名為Netscape。開始開發(fā)面向普通用戶的新一代的瀏覽器 Netscape Navigator仙蛉。
1994年12月笋敞,Navigator發(fā)布了1.0版,市場份額一舉超過90%荠瘪。
Netscape公司很快發(fā)現(xiàn)夯巷,Navigator瀏覽器需要一種可以嵌入網(wǎng)頁的腳本語言,用來控制瀏覽器行為(表單驗(yàn)證)哀墓。管理層對這種瀏覽器腳本語言的設(shè)想是:功能不需要太強(qiáng)趁餐,語法較為簡單,容易學(xué)習(xí)和部署篮绰。

那一年后雷,正逢Sun公司的Java語言問世,市場推廣活動非常成功吠各。Netscape公司決定與Sun公司合作臀突,瀏覽器支持嵌入Java小程序(后來稱為Java applet)。
但是走孽,瀏覽器腳本語言是否就選用Java惧辈,則存在爭論琳状。后來磕瓷,還是決定不使用Java,因?yàn)榫W(wǎng)頁小程序不需要Java這么“重”的語法念逞。但是困食,同時也決定腳本語言的語法要接近Java,并且可以支持Java程序翎承。這些設(shè)想直接排除了使用現(xiàn)存語言硕盹,比如Perl、Python和TCL叨咖。

1995年瘩例,Netscape公司雇傭了程序員Brendan Eich開發(fā)這種網(wǎng)頁腳本語言啊胶。
Brendan Eich有很強(qiáng)的函數(shù)式編程背景,希望以Scheme語言(函數(shù)式語言鼻祖LISP語言的一種方言)為藍(lán)本垛贤,實(shí)現(xiàn)這種新語言焰坪。

1995年5月,Brendan Eich只用了10天聘惦,就設(shè)計(jì)完成了這種語言的第一版某饰。它是一個大雜燴,語法有多個來源:
基本語法:借鑒C語言和Java語言善绎。
數(shù)據(jù)結(jié)構(gòu):借鑒Java語言黔漂,包括將值分成原始值和對象兩大類。
函數(shù)的用法:借鑒Scheme語言和Awk語言禀酱,將函數(shù)當(dāng)作第一等公民炬守,并引入閉包。
原型繼承模型:借鑒Self語言(Smalltalk的一種變種)剂跟。
正則表達(dá)式:借鑒Perl語言劳较。
字符串和數(shù)組處理:借鑒Python語言。

二浩聋、JavaScript的發(fā)展
為了保持簡單观蜗,這種腳本語言缺少一些關(guān)鍵的功能,比如塊級作用域衣洁、模塊墓捻、子類型(subtyping)等等,但是可以利用現(xiàn)有功能找出解決辦法坊夫。這種功能的不足砖第,直接導(dǎo)致了后來JavaScript的一個顯著特點(diǎn):對于其他語言,你需要學(xué)習(xí)語言的各種功能环凿,而對于JavaScript梧兼,你常常需要學(xué)習(xí)各種解決問題的模式。而且由于來源多樣智听,從一開始就注定羽杰,JavaScript的編程風(fēng)格是函數(shù)式編程和面向?qū)ο缶幊痰囊环N混合體。

Netscape公司的這種瀏覽器腳本語言到推,最初名字叫做Mocha考赛。

1995年9月改為LiveScript。
12月莉测,Netscape公司與Sun公司(Java語言的發(fā)明者和所有者)達(dá)成協(xié)議颜骤,后者允許將這種語言叫做JavaScript。
這樣一來捣卤,Netscape公司可以借助Java語言的聲勢忍抽,而Sun公司則將自己的影響力擴(kuò)展到了瀏覽器八孝。

之所以起這個名字,并不是因?yàn)镴avaScript本身與Java語言有多么深的關(guān)系(事實(shí)上鸠项,兩者關(guān)系并不深)唆阿,而是因?yàn)镹etscape公司已經(jīng)決定,使用Java語言開發(fā)網(wǎng)絡(luò)應(yīng)用程序锈锤,JavaScript可以像膠水一樣驯鳖,將各個部分連接起來。當(dāng)然久免,后來的歷史是Java語言的瀏覽器插件失敗了浅辙,JavaScript反而發(fā)揚(yáng)光大。

1995年12月4日阎姥,Netscape公司與Sun公司聯(lián)合發(fā)布了JavaScript語言记舆。
1996年3月,Navigator 2.0瀏覽器正式內(nèi)置了JavaScript腳本語言呼巴。
使得Web獲得更高的關(guān)注泽腮,同時奠定了自己在瀏覽器屆的霸主地位。

如果事情一直這樣下去衣赶,那么NetScape可能依然是我們現(xiàn)代瀏覽器的霸主诊赊。

但是1996年8月互聯(lián)網(wǎng)巨頭微軟公司進(jìn)入瀏覽器領(lǐng)域,推出JScript府瞄,和NetScript公司開始爭奪博主地位碧磅。

1996年11月,Netscape公司決定將JavaScript提交給國際標(biāo)準(zhǔn)化組織ECMA(European Computer Manufacturers Association)
希望JavaScript能夠成為國際標(biāo)準(zhǔn)遵馆,以此抵抗微軟鲸郊。

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

最終良性競爭意味著發(fā)展峻汉,隨著互聯(lián)網(wǎng)的日益更新,瀏覽器功能的日益完善脐往,配合越來越多元化的JavaScript休吠,給用戶帶來了前所未有的體驗(yàn)。

JavaScript在設(shè)計(jì)之初只是為了做表單驗(yàn)證业簿。但是現(xiàn)如今瘤礁,JavaScript已經(jīng)成為了一門功能全面的編程語言,已經(jīng)是WEB中不可缺少的一部分梅尤,如今的JavaScript是一門既簡單又復(fù)雜的語言柜思,說它簡單是因?yàn)榭赡芤恍r就能學(xué)會,但是如果你要真正掌握它巷燥,可能就得需要個幾年的時間了赡盘。

三、JavaScript的組成
當(dāng)瀏覽器之間的爭斗塵埃落定之后缰揪,各方之間也疲憊不堪亡脑,繁瑣的兼容問題不斷出現(xiàn),用戶已經(jīng)開始反彈邀跃。

最終由1961年成立的ECMA(European Computer Manufacturers Association, 中文稱歐洲計(jì)算機(jī)制造聯(lián)合會)制定標(biāo)準(zhǔn)霉咨。這個標(biāo)準(zhǔn)就是ECMAScript。
雖然標(biāo)準(zhǔn)已經(jīng)指定拍屑,但是因?yàn)镴avaScript自身的特殊性途戒,需要在瀏覽器中運(yùn)行,并操作同樣在瀏覽器中運(yùn)行的網(wǎng)頁(html)僵驰,所以喷斋,最終JavaScript被分成了三大模塊,分別是:

ECMAScript:代表了語言的標(biāo)準(zhǔn)蒜茴,規(guī)范星爪。描述了語言的基本語法(var、for粉私、if顽腾、array等)和數(shù)據(jù)類型(數(shù)字、字符串、布爾抄肖、函數(shù)久信、對象(obj、[]漓摩、{}裙士、null)、未定義(undefined))管毙。
BOM:代表了瀏覽器腿椎。描述了瀏覽器窗口的操作和使用,被稱為瀏覽器對象模型夭咬,抽象出的對象為window酥诽。因?yàn)槎喾綖g覽器之間并沒有達(dá)成統(tǒng)一的約定,所以BOM缺乏標(biāo)準(zhǔn)皱埠,建立在ECMAScript標(biāo)準(zhǔn)基礎(chǔ)上肮帐。

DOM:代表了頁面。描述了在瀏覽器中呈現(xiàn)給用戶視覺顯示的頁面的操作和使用边器,是 HTML 和 XML 的應(yīng)用程序接口(API)训枢。DOM 將把整個頁面規(guī)劃成由節(jié)點(diǎn)層級構(gòu)成的文檔,HTML 或 XML 頁面的每個部分都是一個節(jié)點(diǎn)的衍生物忘巧。被稱為文檔對象模型恒界,抽象出的對象為document。標(biāo)準(zhǔn)化規(guī)范為W3C提供砚嘴。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末十酣,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子际长,更是在濱河造成了極大的恐慌耸采,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件工育,死亡現(xiàn)場離奇詭異虾宇,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)如绸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門嘱朽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人怔接,你說我怎么就攤上這事搪泳。” “怎么了扼脐?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵岸军,是天一觀的道長。 經(jīng)常有香客問我,道長凛膏,這世上最難降的妖魔是什么杨名? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任脏榆,我火速辦了婚禮猖毫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘须喂。我一直安慰自己吁断,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布坞生。 她就那樣靜靜地躺著仔役,像睡著了一般。 火紅的嫁衣襯著肌膚如雪是己。 梳的紋絲不亂的頭發(fā)上又兵,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機(jī)與錄音卒废,去河邊找鬼沛厨。 笑死,一個胖子當(dāng)著我的面吹牛摔认,可吹牛的內(nèi)容都是我干的逆皮。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼参袱,長吁一口氣:“原來是場噩夢啊……” “哼电谣!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起抹蚀,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤剿牺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后环壤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體牢贸,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年镐捧,在試婚紗的時候發(fā)現(xiàn)自己被綠了潜索。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡懂酱,死狀恐怖竹习,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情列牺,我是刑警寧澤整陌,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響泌辫,放射性物質(zhì)發(fā)生泄漏随夸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一震放、第九天 我趴在偏房一處隱蔽的房頂上張望宾毒。 院中可真熱鬧,春花似錦殿遂、人聲如沸诈铛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽幢竹。三九已至,卻和暖如春恩静,著一層夾襖步出監(jiān)牢的瞬間焕毫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工驶乾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留邑飒,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓轻掩,卻偏偏與公主長得像幸乒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子唇牧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • JavaScript(簡稱“JS”) 是一種具有函數(shù)優(yōu)先的輕量級罕扎,解釋型或即時編譯型的編程語言。雖然它是作為開發(fā)W...
    蒟蒻_585a閱讀 159評論 0 0
  • 1. JS 歷史 wiki JavaScript[https://zh.wikipedia.org/wiki/Ja...
    HikariXyc閱讀 279評論 0 0
  • JavaScript(通池ぶ兀縮寫為JS)是一種高級的腔召、解釋型的編程語言。JavaScript是一門基于原型扮惦、函數(shù)先行...
    shangjingfan閱讀 251評論 0 0
  • 始于網(wǎng)景 1994年臀蛛,一家名為Mosaic Communications的公司在加州芒廷維尤成立了,并雇用了許多原...
    此人長期不在線閱讀 196評論 0 0
  • JavaScript的歷史: 它最初由Netscape的Brendan Eich設(shè)計(jì)崖蜜。JavaScript是甲骨文...
    安先森_57ce閱讀 425評論 0 0