JavaScript 的誕生

JavaScript(通郴陈祝縮寫為JS)是一種高級的额获、解釋型的編程語言。JavaScript是一門基于原型你虹、頭等函數(shù)的語言丰嘉,是一門多范式的語言夯到,它支持面向?qū)ο蟪绦蛟O(shè)計,指令式編程饮亏,以及函數(shù)式編程耍贾。它提供語法來操控文本、數(shù)組路幸、日期以及正則表達式等荐开,不支持I/O,比如網(wǎng)絡(luò)简肴、存儲和圖形等晃听,但這些都可以由它的宿主環(huán)境提供支持。它已經(jīng)由ECMA(歐洲電腦制造商協(xié)會)通過ECMAScript實現(xiàn)語言的標準化[8]砰识。它被世界上的絕大多數(shù)網(wǎng)站所使用能扒,也被世界主流瀏覽器(Chrome、IE辫狼、Firefox初斑、Safari、Opera)支持膨处。
JavaScript與Java在名字或語法上都有很多相似性见秤,但這兩門編程語言從設(shè)計之初就有很大的不同砂竖,JavaScript的語言設(shè)計主要受到了Self(一種基于原型的編程語言)和Scheme(一門函數(shù)式編程語言)的影響[9]。在語法結(jié)構(gòu)上它又與C語言有很多相似(例如if條件語句鹃答、switch語句乎澄、while循環(huán)、do-while循環(huán)等)测摔。
在客戶端置济,JavaScript在傳統(tǒng)意義上被實現(xiàn)為一種解釋語言,但在最近锋八,它已經(jīng)可以被即時編譯(JIT)執(zhí)行舟肉。隨著最新的HTML5和CSS3語言標準的推行它還可用于游戲、桌面和移動應(yīng)用程序的開發(fā)和在服務(wù)器端網(wǎng)絡(luò)環(huán)境運行查库,如Node.js路媚。

布蘭登·艾克

JavaScript 的歷史

肇始于網(wǎng)景

1993年,國家超級電腦應(yīng)用中心(NCSA)發(fā)表了NCSA Mosaic樊销,這是最早流行的圖形接口網(wǎng)頁瀏覽器整慎,它在萬維網(wǎng)的普及上發(fā)揮了重要作用。1994年围苫,Mosaic的主要開發(fā)人員隨即創(chuàng)立了Netscape公司裤园,并雇用了許多原來的NCSA Mosaic開發(fā)者用來開發(fā)Netscape Navigator,該公司的目標是取代NCSA Mosaic成為世界第一的網(wǎng)頁瀏覽器剂府。在四個月內(nèi)拧揽,已經(jīng)占據(jù)了四分之三的瀏覽器市場,并成為1990年代互聯(lián)網(wǎng)的主要瀏覽器腺占。網(wǎng)景預(yù)見到網(wǎng)絡(luò)需要變得更動態(tài)淤袜。公司的創(chuàng)始人馬克·安德森認為HTML需要一種膠水語言,讓網(wǎng)頁設(shè)計師和兼職程序員可以很容易地使用它來組裝圖片和插件之類的組件衰伯,且代碼可以直接編寫在網(wǎng)頁標記中铡羡。
1995年,網(wǎng)景招募了布蘭登·艾克意鲸,目標是把Scheme語言嵌入到Netscape Navigator瀏覽器當(dāng)中烦周。但更早之前,網(wǎng)景已經(jīng)跟昇陽合作在Netscape Navigator中支持Java怎顾,這時網(wǎng)景內(nèi)部產(chǎn)生激烈的爭論读慎。后來網(wǎng)景決定發(fā)明一種與Java搭配使用的輔助腳本語言并且語法上有些類似,這個決策導(dǎo)致排除了采用現(xiàn)有的語言槐雾,例如Perl夭委、Python、Tcl或Scheme蚜退。為了在其他競爭提案中捍衛(wèi)JavaScript這個想法闰靴,公司需要有一個可以運作的原型。艾克在1995年5月僅花了十天時間就把原型設(shè)計出來了钻注。
最初命名為Mocha蚂且,1995年9月在Netscape Navigator 2.0的Beta版中改名為LiveScript,同年12月幅恋,Netscape Navigator 2.0 Beta 3中部署時被重命名為JavaScript杏死,當(dāng)時網(wǎng)景公司與昇陽電腦公司組成的開發(fā)聯(lián)盟為了讓這門語言搭上Java這個編程語言“熱詞”,因此將其臨時改名為JavaScript捆交,日后這成為大眾對這門語言有諸多誤解的原因之一淑翼。

微軟采納

微軟公司于1995年首次推出Internet Explorer,從而引發(fā)了與Netscape的瀏覽器大戰(zhàn)品追。微軟對Netscape Navigator解釋器進行了逆向工程玄括,創(chuàng)建了JScript,以與處于市場領(lǐng)導(dǎo)地位的網(wǎng)景產(chǎn)品同臺競爭肉瓦。JScript也是一種JavaScript實現(xiàn)遭京,這兩個JavaScript語言版本在瀏覽器端共存意味著語言標準化的缺失,發(fā)展初期泞莉,JavaScript的標準并未確定哪雕,同期有網(wǎng)景的JavaScript,微軟的JScript雙峰并峙鲫趁。除此之外斯嚎,微軟也在網(wǎng)頁技術(shù)上加入了不少專屬對象,使不少網(wǎng)頁使用非微軟平臺及瀏覽器無法正常顯示挨厚,導(dǎo)致在瀏覽器大戰(zhàn)期間網(wǎng)頁設(shè)計者通常會把“用Netscape可達到最佳效果”或“用IE可達到最佳效果”的標志放在主頁堡僻。

標準化

1996年11月,網(wǎng)景正式向ECMA(歐洲計算機制造商協(xié)會)提交語言標準疫剃。1997年6月苦始,ECMA以JavaScript語言為基礎(chǔ)制定了ECMAScript標準規(guī)范ECMA-262。JavaScript成為了ECMAScript最著名的實現(xiàn)之一慌申。除此之外陌选,ActionScript和JScript也都是ECMAScript規(guī)范的實現(xiàn)語言。盡管JavaScript作為給非程序人員的腳本語言蹄溉,而非作為給程序人員的腳本語言來推廣和宣傳咨油,但是JavaScript具有非常豐富的特性。

JavaScript 的設(shè)計思路

(1)借鑒C語言的基本語法柒爵;
(2)借鑒Java語言的數(shù)據(jù)類型和內(nèi)存管理役电;
(3)借鑒Scheme語言,將函數(shù)提升到"第一等公民"(first class)的地位棉胀;
(4)借鑒Self語言法瑟,使用基于原型(prototype)的繼承機制冀膝。

JavaScript 的10個設(shè)計缺陷

  1. 不適合開發(fā)大型程序
  2. 非常小的標準庫
  3. null和undefined
  4. 全局變量難以控制
  5. 自動插入行尾分號
  6. 加號運算符
  7. NaN
  8. 數(shù)組和對象的區(qū)分
  9. == 和 ===
  10. 基本類型的包裝對象

參考鏈接:

  1. JavaScript 的歷史 —— 維基百科
  2. JavaScript 誕生記 —— 阮一峰
  3. JavaScript 的10個設(shè)計缺陷 —— 阮一峰
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市霎挟,隨后出現(xiàn)的幾起案子窝剖,更是在濱河造成了極大的恐慌,老刑警劉巖酥夭,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赐纱,死亡現(xiàn)場離奇詭異,居然都是意外死亡熬北,警方通過查閱死者的電腦和手機疙描,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讶隐,“玉大人起胰,你說我怎么就攤上這事∥籽樱” “怎么了待错?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長烈评。 經(jīng)常有香客問我火俄,道長,這世上最難降的妖魔是什么讲冠? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任瓜客,我火速辦了婚禮,結(jié)果婚禮上竿开,老公的妹妹穿的比我還像新娘谱仪。我一直安慰自己,他們只是感情好否彩,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布疯攒。 她就那樣靜靜地躺著,像睡著了一般列荔。 火紅的嫁衣襯著肌膚如雪敬尺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天贴浙,我揣著相機與錄音砂吞,去河邊找鬼。 笑死崎溃,一個胖子當(dāng)著我的面吹牛蜻直,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼概而,長吁一口氣:“原來是場噩夢啊……” “哼呼巷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起赎瑰,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤王悍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后乡范,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡啤咽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年晋辆,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宇整。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡瓶佳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鳞青,到底是詐尸還是另有隱情霸饲,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布臂拓,位于F島的核電站厚脉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏胶惰。R本人自食惡果不足惜傻工,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望孵滞。 院中可真熱鬧中捆,春花似錦、人聲如沸坊饶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽匿级。三九已至蟋滴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間痘绎,已是汗流浹背脓杉。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留简逮,地道東北人球散。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像散庶,于是被迫代替她去往敵國和親蕉堰。 傳聞我的和親對象是個殘疾皇子凌净,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355