JavaScript的誕生與發展

JS的誕生

JavaScript誕生背景

  1994年,在互聯網剛興起的時代,網景公司(Netscape)發佈了Navigator瀏覽器0.9版。這是歷史上第一個比較成熟的網絡瀏覽器,轟動一時。可是,這個版本的瀏覽器只能用來瀏覽,不具有與訪問者互動的能力。所以網景公司急需一種網頁腳本語言,使得瀏覽器能夠與網頁互動。javascript

  網頁腳本語言究竟是什麼語言?網景公司當時有兩個選擇:一個是採用現有的語言,好比Perl、Python、Tcl、Scheme等等,容許它們直接嵌入網頁;另外一個是發明一種全新的語言。這兩個選擇各有利弊。第一個選擇,有利於充分利用現有代碼和程序員資源,推廣起來比較容易;第二個選擇,有利於開發出徹底適用的語言,實現起來比較容易。html

  1995年,Sun公司將Oak語言改名爲Java並推向市場,並宣稱「Write Once, Run Anywhere」。網景公司深受Java的影響,網景公司高層都很是信賴Java,因此網景公司決定要蹭Java的流量,新開發一門語言,用於瀏覽器的交互。前端

JavaScript誕生

  1995年4月,BrendanEich(布蘭登·艾奇) 加入網景公司。Brenden本來研究方向是函數式編程與Scheme語言。可是1995年5月,網景公司指定Brenden成爲了「新語言」的設計師。而且要求這個「新語言」要和Java足夠的類似(面向對象思想),可是要比Java可以更加簡單地上手。java

  Brenden志不在此,並且對Java徹底不感興趣,爲了完成任務他花了10天時間便把這門「新語言」的最第一版本設計了出來。總的來講他的設計思路是這樣的:node

(1)借鑑C語言的基本語法;webpack

(2)借鑑Java語言的數據類型和內存管理;程序員

(3)借鑑Scheme語言,將函數提高到"第一等公民"(first class)的地位;web

(4)借鑑Self語言,使用基於原型(prototype)的繼承機制。chrome

  因此,Javascript語言其實是兩種語言風格的混合產物——(簡化的)函數式編程+(簡化的)面向對象編程。npm

JavaScript名字的由來

  最初爲了緊貼Java(有一種咖啡也叫Java),這門「新語言」被命名爲Mocha(有一種咖啡也叫Mocha)。

  但因爲商標的問題,以及網景公司不少產品已經使用了「Live」做爲產品名前綴,Mocha改名爲LiveScript。

  因爲網景公司與Sun公司有一些合做(網景公司容許Java程序以applet(小程序)的形式,直接在瀏覽器中運行;甚至還考慮直接將Java做爲腳本語言嵌入網頁),Sun把Java這個商標受權給了網景公司,因而LiveScript改名爲JavaScript

JavaScript的缺陷

  JavaScript被Brenden僅僅花了10天就開發了出來,可想而知JavaScript是如此的粗糙。 阮一峯--Javascript的10個設計缺陷

瀏覽器發展史

早期瀏覽器大戰

  因爲互聯網剛興起,各類瀏覽器也層出不窮,而各個商家的瀏覽器支持的瀏覽器腳本也不太同樣。其中微軟在1996年8月發佈了本身的瀏覽器IE3。IE3 並不支持JavaScript,而是支持自家研發的腳本語言JScript。

網景提交JS標準

  1996年11月,網景向ECMA提交語言標準,因爲版權問題,JS語言標準不叫JavaScript,而是ECMAScript。

  JavaScript與ECMAScript的區別在於,ECMAScript是標準,JavaScript是實現,實現的功能不必定會出如今標準裏面。實際上JavaScript是由ECMAScript,DOM和BOM三者組成的

網景之死

  爲了推廣自家瀏覽器,微軟將IE瀏覽器直接捆綁進了Windows系統中。這一舉動,直接讓IE瀏覽器佔據了市場絕大部分的份額。1998年,爲了抗衡IE瀏覽器,網景公司直接把自家的瀏覽器開源(FireFox前身),可是仍然難逃被收購的命運。Brenden以後一直在協助維護這個網景開源的瀏覽器。

IE6如日中天

  2001年,IE6和Windows XP系統一塊兒發佈。至2004年,IE6已經佔據了市場的80%以上。然而這款瀏覽器卻不兼容W3C標準(主要是CSS)。

  看見IE6獨霸一方,無人可敵,微軟直接把IE6開發團隊給解僱了一大部分,致使IE6不斷爆出安全漏洞。這種狀況下,FireFox從新出山,但願戰勝IE。

  看到FireFox的東山再起,微軟從新組建的團隊開發IE7。2005年,IE7發佈,可是因爲開發團隊能力不如IE6的團隊,IE7也幹不過自家兄弟IE6。

  2006年,主流瀏覽器除了IE6還有一個FireFox。但因爲盜版XP系統在中國橫行,直至2010年中國瀏覽器市場仍然被IE6佔據。這也成爲了中國前端開發的噩夢(須要不斷兼容IE),大大阻礙了中國前端的發展。

Chrome橫空出世

   2004年,谷歌僱用了一些FireFox和IE的開發者進行本身瀏覽器Chrome的開發。

   2008年,Chrome瀏覽器發佈,並迅速拿下1%的市場份額。因爲Chrome瀏覽器很是快,愈來愈受到市場的歡迎。

   2011年,Chrome瀏覽器的市場份額超越FireFox。

   2016年,Chrome瀏覽器的市場份額達到62%。Chrome的騰飛結束了中國前端開發者被IE折磨的日子。2016年,淘寶天貓宣佈再也不支持IE六、7;同年年末,宣佈再也不支持IE8。

移動市場顛覆格局

  2010年iPhone4發佈,宣告智能手機時代來臨。可是不管是IOS系統(Safari),仍是Android系統(chrome)都不支持IE瀏覽器。

  微軟見此狀況和Nokia聯合起來,但最終仍是Nokia在手機行業宣告失敗,手機業務被微軟收購。能夠認爲,手機上基本見不到IE了。

  至此,前端開發者能夠再也不須要考慮IE用戶的需求,擺脫了被IE支配的日子,前端今後極速發展。

ECMAScript標準

ECMAScript各個版本

  1997年6月,初版ECMAScript發佈。

  1999年12月,第三版ECMAScript發佈,這也是應用最普遍的ECMAScript版本。

  第四版流產。

  第三版發佈後,通過了10年,20019年12月第五版ECMAScript才發佈,這正是由於這段時間IE瀏覽器正制霸着市場。

  隨着Chrome的崛起,這些新的瀏覽器的JS引擎都根據ECMAScript標準進行實現。因此除了IE,其餘瀏覽器與瀏覽器之間的兼容性獲得大大提升。

  2015年6月,ECMAScript第六版(ES6)發佈。並在以後每年都發布一版。可見JS地位在不斷提升。

  JavaScript與ECMAScript的區別在於,ECMAScript是標準,JavaScript是實現(實際上JavaScript是由ECMAScript,DOM和BOM三者組成的),實現的功能不必定會出如今標準裏面,不一樣的瀏覽器也有本身獨特的JS實現。

JS的發展

JS的興起--Gmail的誕生

   2004年愚人節,谷歌發佈Gmail。Gmail是谷歌開發的一款具備發送接收郵件功能的在線網頁。在Gmail出現之前,全部人都認爲瀏覽器只能用於瀏覽閱讀。可是Gmail讓用戶從新認識了瀏覽器的功能。

  2005年,Jesse將谷歌實現Gmail的技術命名爲AJAX。今後前端技術正式出現。

  2006年,JQuery發佈,JQuery是最長壽的JS庫,其主要是兼容IE,但隨着IE的落寞,JQuery也逐漸淡出前端開發者的視野。

JS的爆發--V8引擎

  Chrome的JS引擎是V8(V1~V7是不一樣語言的引擎),V8引擎超快的速度讓chrome成爲了最主流的瀏覽器。

  2009年,Ryan基於V8,建立了Node.js;2010年Issac基於Node.js寫出了npm。有了node.js,前端工程師實現了在瀏覽器以外執行JS。

  2010年,TJ受Sinatra的啓發,發佈了Express.js。Node.js與Express.js讓前端工程師能夠完成後端的內容。雖然還比不上Java,可是至少也具有了手段。

  藉助Chrome的風,期間也爆發除了不少前端的技術:gulp、grunt、yeoman、require.js、webpack、Angular、React、Vue等。固然其中一些技術也已通過時了。

相關文章
相關標籤/搜索