JavaScript 簡歷
JavaScript 是屬于 HTML 和 Web 的編程語言傅蹂。
編程令計(jì)算機(jī)完成您需要它們做的工作虫几。
JavaScript 很容易學(xué)習(xí)伶氢。
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ā)宙刘,Netscape與Sun公司成立了一個(gè)開發(fā)聯(lián)盟。而此時(shí)够委,Netscape為了搭上媒體熱炒Java的順風(fēng)車荐类,臨時(shí)把LiveScript改名為JavaScript,所以從本質(zhì)上來說JavaScript和Java沒什么關(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版本吊输,IE的JScript、網(wǎng)景的JavaScript和ScriptEase中的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):
雖然JavaScript和ECMAScript通常被人用來表達(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)境還包括Node和Adobe 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ì)上與Netscape的JavaScript1.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)行了一次全面的檢核修訂脊髓。由于JavaScript在Web上日益流行。開發(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)寒屯。HTML或XML頁面中的每個(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ì)你有所幫助。