第一章JavaScript 的發(fā)展

JavaScript 簡歷

JavaScript 是屬于 HTML 和 Web 的編程語言傅蹂。

編程令計(jì)算機(jī)完成您需要它們做的工作虫几。

JavaScript 很容易學(xué)習(xí)伶氢。


布蘭登·艾奇(Brendan Eich吭历,1961年~)达址,JavaScript之父


John Resig ,JQuery創(chuàng)始人

JavaScript歷史:

JavaScript誕生于1995年早敬。起初它的主要目的是處理以前由服務(wù)器端負(fù)責(zé)的一些表單驗(yàn)證忌傻。在那個(gè)絕大多數(shù)用戶都在使用調(diào)制解調(diào)器上網(wǎng)的時(shí)代,用戶填寫完一個(gè)表單點(diǎn)擊提交搞监,需要等待幾十秒水孩,完了服務(wù)器反饋給你說某個(gè)地方填錯(cuò)了......在當(dāng)時(shí)如果能在客戶端完成一些基本的驗(yàn)證絕對(duì)是令人興奮的。當(dāng)時(shí)走在技術(shù)革新最前沿的Netscape(網(wǎng)景)公司琐驴,決定著手開發(fā)一種客戶端語言俘种,用來處理這種裝簡單的驗(yàn)證。當(dāng)時(shí)就職于Netscape公司的布蘭登·艾奇開始著手計(jì)劃將1995年2月發(fā)布的LiveScript同時(shí)在瀏覽器和服務(wù)器中使用绝淡。為了趕在發(fā)布日期前完成LiveScript的開發(fā)宙刘,NetscapeSun公司成立了一個(gè)開發(fā)聯(lián)盟。而此時(shí)够委,Netscape為了搭上媒體熱炒Java的順風(fēng)車荐类,臨時(shí)把LiveScript改名為JavaScript,所以從本質(zhì)上來說JavaScriptJava沒什么關(guān)系茁帽。

JavaScript 1.0獲得了巨大的成功玉罐,Netscape隨后在Netscape Navigator 3(網(wǎng)景瀏覽器)中發(fā)布了JavaScript 1.1。之后作為競爭對(duì)手的微軟在自家的IE3中加入了名為JScript(名稱不同是為了避免侵權(quán))的JavaScript實(shí)現(xiàn)潘拨。而此時(shí)市面上意味著有3個(gè)不同的JavaScript版本吊输,IEJScript、網(wǎng)景的JavaScriptScriptEase中的CEnvi铁追。當(dāng)時(shí)還沒有標(biāo)準(zhǔn)規(guī)定JavaScript的語法和特性季蚂。隨著版本不同暴露的問題日益加劇,JavaScript的規(guī)范化最終被提上日程琅束。

1997年扭屁,以JavaScript1.1為藍(lán)本的建議被提交給了歐洲計(jì)算機(jī)制造商協(xié)會(huì)(ECMA,European Computer Manufactures Association)該協(xié)會(huì)指定39號(hào)技術(shù)委員會(huì)負(fù)責(zé)將其進(jìn)行標(biāo)準(zhǔn)化涩禀,TC39來此各大公司以及其他關(guān)注腳本語言發(fā)展的公司的程序員組成料滥,經(jīng)過數(shù)月的努力完成了ECMA-262——定義了一種名為ECMAScript的新腳本語言的標(biāo)準(zhǔn)。第二年艾船,ISO/IEC(國標(biāo)標(biāo)準(zhǔn)化組織和國際電工委員會(huì))也采用了ECMAScript作為標(biāo)準(zhǔn)(即ISO/IEC-16262)葵腹。


JavaScript實(shí)現(xiàn):

雖然JavaScriptECMAScript通常被人用來表達(dá)相同的意思高每,但JavaScript的含義去比ECMA-262中規(guī)定的多得多。一個(gè)完整的JavaScript實(shí)現(xiàn)應(yīng)由三個(gè)部分組成:

1.核心(ECMAScript)

2.文檔對(duì)象模型(DOM)

3.瀏覽器對(duì)象模型(BOM

ECMAScript

  由ECMA-262定義的ECMAScript其實(shí)與Web瀏覽器沒有依賴關(guān)系践宴。Web瀏覽器只是ECMAScript實(shí)現(xiàn)可能的宿主環(huán)境之一鲸匿。ECMA-262定義的只這門語言的基礎(chǔ),而在此基礎(chǔ)上可能構(gòu)建更完善的腳本語言阻肩。說回宿主带欢,它不僅提供基本的JavaScript的實(shí)現(xiàn),同時(shí)也會(huì)提供該語言的擴(kuò)展磺浙,比如DOM洪囤。其他宿主環(huán)境還包括NodeAdobe Flash徒坡。

ECMA-262標(biāo)準(zhǔn)主要規(guī)定了這門語言的以下組成部分:

1.語法撕氧,2.類型,3.語句喇完,4.關(guān)鍵字伦泥,5.保留字,6.操作符锦溪,7.對(duì)象不脯。


ECMAScript的版本

ECAMScript的不同版本又稱為版次,ECMA-262最近一版是第5版刻诊,發(fā)布于2009年防楷。ECAM-262的第1版實(shí)質(zhì)上與NetscapeJavaScript1.1相同,只不過做了些小改動(dòng):支持Unicode標(biāo)準(zhǔn)则涯,對(duì)象與平臺(tái)無關(guān)复局。

ECMA-262第2版主要是編輯加工的結(jié)果,沒有作任何新增粟判、修改或刪節(jié)處理亿昏。

ECMA-262第3版才是對(duì)該標(biāo)準(zhǔn)第一次真正的修改。修改內(nèi)容包括字符串處理档礁、錯(cuò)誤定義和數(shù)值輸出角钩。這一版還新增了對(duì)正則表達(dá)式、新控制語句呻澜、try-catch異常處理的支持递礼,并圍繞標(biāo)準(zhǔn)的國際化做出了一些小的修改。第3版也標(biāo)志著ECMAScript成為了一門真正的編程語言羹幸。

ECMA-262第4版對(duì)這門語言進(jìn)行了一次全面的檢核修訂脊髓。由于JavaScriptWeb上日益流行。開發(fā)人員紛紛建議修訂ECMAScript睹欲,以使其能夠滿足不斷增長的Web開發(fā)需求供炼。ECMA TC39重新召集相關(guān)人員共同謀劃一屋,結(jié)果,出臺(tái)后的標(biāo)準(zhǔn)幾乎是在第3版的基礎(chǔ)上完全定義了一門新語言袋哼。第4版不僅包含了強(qiáng)類型變量冀墨、新語句和新的數(shù)據(jù)結(jié)構(gòu)、真正的類和經(jīng)典繼承涛贯。還定義了與數(shù)據(jù)交互的新方式诽嘉。此時(shí),TC39下屬的一個(gè)小組認(rèn)為第4版給這門語言帶來的跨越太大了弟翘,他們提出了ECMAScript 3.1的替代性建議虫腋,該建議只對(duì)這門語言進(jìn)行了較少的改進(jìn)。最終稀余,ES3.1附屬委員會(huì)獲得的支持超過了TC39悦冀,ECMA-262第4版在正式發(fā)布前被放棄。ECMAScript 3.1最終成為ECMA-262第5版睛琳,并于2009年12月3日正式發(fā)布盒蟆。第5版力求澄清第3版中已知的歧義并添加了新的功能,包括原生JSON對(duì)象师骗、繼承的方法和高級(jí)屬性定義历等,以及嚴(yán)格模式。


文檔對(duì)象模型(DOM)

文檔對(duì)象模型是針對(duì)XML但經(jīng)過擴(kuò)展用于HTML的應(yīng)用程序編程接口辟癌。DOM把整個(gè)頁面映射為一個(gè)多層節(jié)點(diǎn)結(jié)構(gòu)寒屯。HTMLXML頁面中的每個(gè)組成部分都是某種類型的節(jié)點(diǎn),這些節(jié)點(diǎn)又包含著不同類型的數(shù)據(jù)黍少。

比如下面這個(gè)頁面:

<html>

<head>

? ? ? ? <title>Sample Page</title>

</head>

<body>

? ? ? ? ? ? <p>Hello? World寡夹!</p>

</body>

</html>

可以通過下面這個(gè)分層節(jié)點(diǎn)樹表示:


通過DOM創(chuàng)建的這個(gè)表示文檔的樹形圖(通常也被稱作文檔樹),程序員可以通過DOM提供的API仍侥,輕松的對(duì)其中的任何節(jié)點(diǎn)進(jìn)行刪除要出、添加、修改等操作农渊。


DOM的級(jí)別:

DOM正式被統(tǒng)一規(guī)劃源自微軟與網(wǎng)景在開發(fā)DHTML(Dynamic HTML,動(dòng)態(tài)HTML)上各持己見患蹂,DTHML的出現(xiàn)使得開發(fā)人員第一次無需重新加載網(wǎng)頁就可以修改其內(nèi)容。為了控制Netscape和微軟在Web開發(fā)領(lǐng)域上兩強(qiáng)割據(jù)砸紊,導(dǎo)致瀏覽器互不兼容的局面传于,負(fù)責(zé)制定Web通信標(biāo)準(zhǔn)的W3C(WorldWide Web Consortium,萬維網(wǎng)聯(lián)盟)開始著手規(guī)劃DOM

DOM 1級(jí)于1998年10月成為W3C的推薦標(biāo)準(zhǔn)醉顽。DOM 1級(jí)由兩個(gè)部分組成:DOM核心(DOM Core)DOM HTML沼溜。其中,DOM核心是規(guī)定如何映射基于XML的文檔結(jié)構(gòu)游添,以便對(duì)文檔中的節(jié)點(diǎn)進(jìn)行訪問和操作系草。DOM HTML則在DOM的核心的基礎(chǔ)上加以擴(kuò)展通熄,添加了針對(duì)HTML的對(duì)象和方法。這里需要注意的是找都,DOM并不是只針對(duì)JavaScript的唇辨,很多其他語言也都實(shí)現(xiàn)了DOM。只不在Web中能耻,DOM已經(jīng)成了JavaScript中重要的組成部分赏枚。

DOM 2級(jí)在原基礎(chǔ)上擴(kuò)展了鼠標(biāo)和用戶界面整件、范圍晓猛、遍歷等細(xì)分模塊饿幅,而且通過對(duì)象接口增加了對(duì)CSS(Cascading Style Sheets,層疊樣式表)的支持戒职。

DOM 3級(jí)則進(jìn)一步擴(kuò)展了DOM栗恩,引入了加載和保存文檔的方法。


瀏覽器對(duì)象模型(BOM)

開發(fā)人員可以使用BOM來控制瀏覽器顯示頁面以外的部分帕涌。而BOM真正與眾不同或者說經(jīng)常導(dǎo)致問題的地方在于它是JavaScript實(shí)現(xiàn)的一部分卻不像DOM有著相關(guān)的標(biāo)準(zhǔn)摄凡。這個(gè)問題在HTML5中得到了解決续徽,HTML5致力于把很多BOM功能寫入規(guī)范蚓曼。HTML5發(fā)布后,很多關(guān)于BOM的困惑也就消失了钦扭。從根本來講纫版,BOM只處理瀏覽器窗口和框架,但人們習(xí)慣上也把所有針對(duì)瀏覽器的JavaScript擴(kuò)展算作BOM的一部分客情。下面就是一些這樣的擴(kuò)展:

彈出新瀏覽器窗口的功能其弊;移動(dòng)、縮放和關(guān)閉瀏覽器窗口的功能膀斋;

提供瀏覽器詳細(xì)信息的navigator對(duì)象梭伐;

提供瀏覽器所加載頁面的詳細(xì)信息的location對(duì)象;

提供用戶顯示器分辨率詳細(xì)信息的screen對(duì)象仰担;

對(duì)cookies的支持糊识;

像XMLHttpRequest和IE的ActiveXObject(AJAX的核心實(shí)現(xiàn))這樣的自定義對(duì)象。

關(guān)于BOM的更多內(nèi)容會(huì)在以后的博文中詳細(xì)介紹摔蓝。


為何學(xué)習(xí) JavaScript赂苗?

JavaScript 是 web 開發(fā)者必學(xué)的三種語言之一:

HTML?定義網(wǎng)頁的內(nèi)容

CSS?規(guī)定網(wǎng)頁的布局

JavaScript?對(duì)網(wǎng)頁行為進(jìn)行編程

本教程提供關(guān)于 JavaScript,以及 JavaScript 如何與 HTML 和 CSS 協(xié)同工作的知識(shí)贮尉。

您知道嗎拌滋?

JavaScript 和 Java 是完全不同的語言,不論是概念還是設(shè)計(jì)猜谚。

JavaScript 在 1995 年由 Brendan Eich 發(fā)明败砂,并于 1997 年成為一部 ECMA 標(biāo)準(zhǔn)赌渣。

ECMA-262 是其官方名稱。ECMAScript 6 (發(fā)布于 2015 年)是最新的?JavaScript 版本昌犹。

感謝你的瀏覽锡垄,希望能對(duì)你有所幫助。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末祭隔,一起剝皮案震驚了整個(gè)濱河市货岭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌疾渴,老刑警劉巖千贯,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異搞坝,居然都是意外死亡搔谴,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門桩撮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來敦第,“玉大人,你說我怎么就攤上這事店量∥吖” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵融师,是天一觀的道長右钾。 經(jīng)常有香客問我,道長旱爆,這世上最難降的妖魔是什么舀射? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮怀伦,結(jié)果婚禮上脆烟,老公的妹妹穿的比我還像新娘。我一直安慰自己房待,他們只是感情好邢羔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著吴攒,像睡著了一般张抄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上洼怔,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天署惯,我揣著相機(jī)與錄音,去河邊找鬼镣隶。 笑死极谊,一個(gè)胖子當(dāng)著我的面吹牛诡右,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播轻猖,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼帆吻,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了咙边?” 一聲冷哼從身側(cè)響起猜煮,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎败许,沒想到半個(gè)月后王带,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡市殷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年愕撰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片醋寝。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡搞挣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出音羞,到底是詐尸還是另有隱情囱桨,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布黄选,位于F島的核電站蝇摸,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏办陷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一律歼、第九天 我趴在偏房一處隱蔽的房頂上張望民镜。 院中可真熱鬧,春花似錦险毁、人聲如沸制圈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鲸鹦。三九已至,卻和暖如春跷跪,著一層夾襖步出監(jiān)牢的瞬間馋嗜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國打工吵瞻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留葛菇,地道東北人甘磨。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像眯停,于是被迫代替她去往敵國和親济舆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

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

  • JavaScript 誕生于1995 年莺债。當(dāng)時(shí)滋觉,它的主要目的是處理以前由服務(wù)器端語言(如Perl)負(fù)責(zé)的一些輸入驗(yàn)...
    遼A丶孫悟空閱讀 686評(píng)論 0 34
  • JS 簡史 Web 的興起已經(jīng)把 JavaScript 帶到一個(gè)前所未有的地步, 了解JS 的歷史更好的使用JS ...
    迷緣火葉閱讀 1,631評(píng)論 0 1
  • 1.1 JavaScript簡史 ??Javascript誕生于1995年。在Javascript問世之前齐邦,必須將...
    伊凡的一天閱讀 349評(píng)論 0 2
  • JavaScript 是面向 Web 的編程語言椎瘟,絕大多數(shù)現(xiàn)代網(wǎng)站都使用了 JavaScript,并且所有的現(xiàn)代 ...
    劼哥stone閱讀 865評(píng)論 0 8
  • 一侄旬、什么是JavaScript JavaScript 是一種具有面向?qū)ο竽芰Φ姆挝怠⒔忉屝偷某绦蛟O(shè)計(jì)語言。更具體一點(diǎn)儡羔,...
    取個(gè)帥氣的名字真好閱讀 539評(píng)論 0 1