JavaScript簡(jiǎn)史
JavaScript誕生于1995年,剛出生的它主要用來(lái)處理輸入驗(yàn)證操作(它為出生前晤揣,所有的表單驗(yàn)證都是有服務(wù)端處理)。當(dāng)時(shí)絕大多數(shù)的英特網(wǎng)用戶使用的是速度僅為28.8kbit/s的"貓"(調(diào)制調(diào)解器)上網(wǎng)朱灿,隨著網(wǎng)頁(yè)的復(fù)雜度和大小不斷增加昧识,為完成簡(jiǎn)單的表單驗(yàn)證卻要頻繁和服務(wù)器交換數(shù)據(jù),不僅會(huì)加重服務(wù)器的負(fù)擔(dān)盗扒,更重要的是還會(huì)給用戶帶來(lái)糟糕的體驗(yàn)跪楞。試想一下:用戶填寫了一個(gè)調(diào)查表單缀去,點(diǎn)擊"提交"按鈕,等待了30s后甸祭,服務(wù)器返回一條提示"未填寫xxx"(想想就不寒而栗)...所以當(dāng)時(shí)走在互聯(lián)網(wǎng)技術(shù)革新最前沿的Netscape公司缕碎,決定開(kāi)發(fā)一種語(yǔ)言用以在客戶端處理簡(jiǎn)單的表單驗(yàn)證--95年2月宣布JavaScript 1.0誕生。
發(fā)展至今淋叶,JavaScript已經(jīng)成為如此強(qiáng)大的編程語(yǔ)言阎曹,成為了Web的一個(gè)重要組成部分。它是一門學(xué)會(huì)使用只需片刻煞檩,真正掌握待需數(shù)年的語(yǔ)言处嫌,對(duì)它我們當(dāng)不驕不躁,不離不棄斟湃。要完全掌握J(rèn)avaScript需要知道它的本質(zhì)熏迹、歷史以及局限性。
JavaScript常識(shí)
雖然JavaScript和ECMAScript通常被人們表達(dá)相同的含義凝赛,但事實(shí)上JavaScript的含義不止于此注暗。JavaScript由3個(gè)不同的組成成分實(shí)現(xiàn):ECMAScript(核心)、文檔對(duì)象模型-DOM墓猎、瀏覽器對(duì)象模型-BOM捆昏。
ECMAScript是對(duì)實(shí)現(xiàn)ECMA-262標(biāo)準(zhǔn)(該標(biāo)準(zhǔn)規(guī)定了這門語(yǔ)言的語(yǔ)法、類型毙沾、語(yǔ)句骗卜、關(guān)鍵詞、保留字左胞、操作符寇仓、對(duì)象)的語(yǔ)言的描述,不與任何Web瀏覽器綁定烤宙,Web瀏覽器知識(shí)ECMAScript的宿主之一遍烦,宿主環(huán)境提供ECMAScript實(shí)現(xiàn)以及該語(yǔ)言的擴(kuò)展。
文檔對(duì)象模型(DOM)是針對(duì)XML但是經(jīng)過(guò)擴(kuò)展用于HTML的應(yīng)用程序編程接口躺枕。DOM把整個(gè)頁(yè)面映射為一個(gè)多層節(jié)點(diǎn)結(jié)構(gòu)服猪,HTML頁(yè)面中的每個(gè)組成部分都是某種類型的節(jié)點(diǎn),這些節(jié)點(diǎn)又包含著不同的數(shù)據(jù)屯远。借助DOM我們可以自由地添加蔓姚、刪除、替換或修改任何節(jié)點(diǎn)慨丐。
瀏覽器對(duì)象模型(BOM)可以對(duì)瀏覽器窗口進(jìn)行訪問(wèn)和操作坡脐,使用BOM,開(kāi)發(fā)者可以移動(dòng)窗口房揭、改變狀態(tài)欄的文本以及執(zhí)行其他與頁(yè)面內(nèi)容不直接相關(guān)的動(dòng)作(操作瀏覽器顯示的頁(yè)面以外的部分)备闲。BOM主要處理瀏覽器的窗口和框架晌端,不過(guò)通常瀏覽器特定的JavaScript擴(kuò)展都被看作BOM的一部分,這些擴(kuò)展包括:
- 彈出新的瀏覽器窗口
- 移動(dòng)和關(guān)閉瀏覽器窗口以及調(diào)整窗口大小
- 提供Web瀏覽器詳細(xì)信息的navigator(導(dǎo)航)對(duì)象
- 提供裝載到瀏覽器中頁(yè)面的詳細(xì)信息的position對(duì)象
- 提供用戶屏幕分辨率詳細(xì)信息的screen對(duì)象
- 對(duì)cookies的支持
- 像XMLHttpReqest和IE的ActiveXObject這樣的自定義對(duì)象
? ?Ps:大多數(shù)瀏覽器在提及對(duì)JavaScript的支持情況時(shí)恬砂,一般都已ECMAScript兼容性和對(duì)DOM的支持情況為準(zhǔn)咧纠。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??