JavaScript的誕生

2018-06-23 11:43 更新

JavaScript因為互聯(lián)網(wǎng)而生,緊隨著瀏覽器的出現(xiàn)而問世?;仡櫵臍v史,就要從瀏覽器的歷史講起。

1990年底,歐洲核能研究組織(CERN)科學(xué)家Tim Berners-Lee,在全世界最大的電腦網(wǎng)絡(luò)——互聯(lián)網(wǎng)的基礎(chǔ)上,發(fā)明了萬維網(wǎng)(World Wide Web),從此可以在網(wǎng)上瀏覽網(wǎng)頁文件。最早的網(wǎng)頁只能在操作系統(tǒng)的終端里瀏覽,也就是說只能使用命令行操作,網(wǎng)頁都是在字符窗口中顯示,這當(dāng)然非常不方便。

1992年底,美國國家超級電腦應(yīng)用中心(NCSA)開始開發(fā)一個獨立的瀏覽器,叫做Mosaic。這是人類歷史上第一個瀏覽器,從此網(wǎng)頁可以在圖形界面的窗口瀏覽。

1994年10月,NCSA的一個主要程序員Marc Andreessen聯(lián)合風(fēng)險投資家Jim Clark,成立了Mosaic通信公司(Mosaic Communications),不久后改名為Netscape。這家公司的方向,就是在Mosaic的基礎(chǔ)上,開發(fā)面向普通用戶的新一代的瀏覽器Netscape Navigator。

1994年12月,Navigator發(fā)布了1.0版,市場份額一舉超過90%。

Netscape公司很快發(fā)現(xiàn),Navigator瀏覽器需要一種可以嵌入網(wǎng)頁的腳本語言,用來控制瀏覽器行為。當(dāng)時,網(wǎng)速很慢而且上網(wǎng)費很貴,有些操作不宜在服務(wù)器端完成。比如,如果用戶忘記填寫“用戶名”,就點了“發(fā)送”按鈕,到服務(wù)器再發(fā)現(xiàn)這一點就有點太晚了,最好能在用戶發(fā)出數(shù)據(jù)之前,就告訴用戶“請?zhí)顚懹脩裘?。這就需要在網(wǎng)頁中嵌入小程序,讓瀏覽器檢查每一欄是否都填寫了。

管理層對這種瀏覽器腳本語言的設(shè)想是:功能不需要太強(qiáng),語法較為簡單,容易學(xué)習(xí)和部署。那一年,正逢Sun公司的Java語言問世,市場推廣活動非常成功。Netscape公司決定與Sun公司合作,瀏覽器支持嵌入Java小程序(后來稱為Java applet)。但是,瀏覽器腳本語言是否就選用Java,則存在爭論。后來,還是決定不使用Java,因為網(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)本,實現(xiàn)這種新語言。

1995年5月,Brendan Eich只用了10天,就設(shè)計完成了這種語言的第一版。它是一個大雜燴,語法有多個來源:

  • 基本語法:借鑒C語言和Java語言。
  • 數(shù)據(jù)結(jié)構(gòu):借鑒Java語言,包括將值分成原始值和對象兩大類。
  • 函數(shù)的用法:借鑒Scheme語言和Awk語言,將函數(shù)當(dāng)作第一等公民,并引入閉包。
  • 原型繼承模型:借鑒Self語言(Smalltalk的一種變種)。
  • 正則表達(dá)式:借鑒Perl語言。
  • 字符串和數(shù)組處理:借鑒Python語言。

為了保持簡單,這種腳本語言缺少一些關(guān)鍵的功能,比如塊級作用域、模塊、子類型(subtyping)等等,但是可以利用現(xiàn)有功能找出解決辦法。這種功能的不足,直接導(dǎo)致了后來JavaScript的一個顯著特點:對于其他語言,你需要學(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ò)展到了瀏覽器。

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

1995年12月4日,Netscape公司與Sun公司聯(lián)合發(fā)布了JavaScript語言。

1996年3月,Navigator 2.0瀏覽器正式內(nèi)置了JavaScript腳本語言。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號