1.1為什么會(huì)出現(xiàn)javascript器罐?
??1995年,javascript問(wèn)世,當(dāng)時(shí)的目的主要用于代替Perl等服務(wù)器端語(yǔ)言處理輸入驗(yàn)證,而在這之前要驗(yàn)證某個(gè)必填字段是否已填寫状土,或者某個(gè)輸入的值是否有效,需要與服務(wù)器的一次往返通信(費(fèi)時(shí)間)伺糠。通過(guò)javascript可以由客戶端處理某些基本的驗(yàn)證蒙谓。今天,javascript已經(jīng)滲透到瀏覽器及其內(nèi)容的方方面面训桶。
1.2 歷史:
??1995年累驮,網(wǎng)警公司的Brendan Eich,為即將發(fā)布的 Netscape Navigator 2 開(kāi)發(fā)一個(gè)叫 Mocha(后來(lái)改名為 LiveScript)的腳本語(yǔ)言舵揭。(那個(gè)時(shí)候的計(jì)劃是在客戶端和服務(wù)器端都使用它谤专,它在服務(wù)器端叫 LiveWire。)
??為了趕上發(fā)布時(shí)間午绳,網(wǎng)景與 Sun 公司結(jié)為開(kāi)發(fā)聯(lián)盟置侍,共同完成 LiveScript 的開(kāi)發(fā)。就在 Netscape Navigator 2 正式發(fā)布前拦焚,網(wǎng)景把 LiveScript 改名為 JavaScript蜡坊,以便搭上媒體當(dāng)時(shí)熱烈炒作 Java 的順風(fēng)車。
??由于 JavaScript 1.0 很成功赎败,網(wǎng)景又在 Netscape Navigator 3 中發(fā)布了 1.1 版本秕衙。尚未成熟的 Web 的受歡迎程度達(dá)到了歷史新高,微軟一見(jiàn)僵刮,就在 Netscape Navigator 3 發(fā)布后不久据忘,微軟發(fā)布了 IE3,其中包含自己名為 JScriptt(叫這個(gè)名字是為了避免與網(wǎng)景發(fā)生許可糾紛)的 JavaScript 實(shí)現(xiàn)妓笙。
??與 C 語(yǔ)言以及很多其他編程語(yǔ)言不同若河,JavaScript 還沒(méi)有規(guī)范其語(yǔ)法或特性的標(biāo)準(zhǔn),兩個(gè)版本并存讓這個(gè)問(wèn)題更加突出了寞宫。
??1997 年萧福,JavaScript 1.1 作為提案被提交給歐洲計(jì)算機(jī)制造商協(xié)會(huì)(Ecma)。第 39 技術(shù)委員會(huì)(TC39)承擔(dān)了“標(biāo)準(zhǔn)化javascript”的任務(wù)辈赋。最終打造出了ECMA-262鲫忍,也就是 ECMAScript膏燕。
2.1什么是javascript?
JavaScript一種動(dòng)態(tài)類型悟民、弱類型坝辫、基于原型的客戶端腳本語(yǔ)言,用來(lái)給HTML網(wǎng)頁(yè)增加動(dòng)態(tài)功能射亏。
動(dòng)態(tài):
??在運(yùn)行時(shí)確定數(shù)據(jù)類型近忙。變量使用之前不需要類型聲明,通常變量的類型是被賦值的那個(gè)值的類型智润。
弱類:
??計(jì)算時(shí)可以不同類型之間對(duì)使用者透明地隱式轉(zhuǎn)換及舍,即使類型不正確,也能通過(guò)隱式轉(zhuǎn)換來(lái)得到正確的類型窟绷。(例如 ' ' + 1 = '1')
原型:
??新對(duì)象繼承模板對(duì)象锯玛,模板對(duì)象將自身的屬性共享給新對(duì)象,模版對(duì)象稱為原型兼蜈。這樣新對(duì)象實(shí)例化后不但可以享有自己創(chuàng)建時(shí)和運(yùn)行時(shí)定義的屬性攘残,而且可以享有原型對(duì)象的屬性。
2.2javascript的組成
2.2.1ECMAScript(核心)
作為核心为狸,它規(guī)定了語(yǔ)言的組成部分:語(yǔ)法歼郭、類型、語(yǔ)句钥平、關(guān)鍵字实撒、保留字、操作符涉瘾、全局對(duì)象知态。
2.2.2DOM(文檔對(duì)象模型)
DOM將整個(gè)頁(yè)面抽象為一組分層節(jié)點(diǎn)。立叛,開(kāi)發(fā)人員可借助DOM提供的API负敏,輕松地刪除、添加秘蛇、替換或修改任何節(jié)點(diǎn)其做。
2.2.3BOM(瀏覽器對(duì)象模型)
支持可以訪問(wèn)和操作瀏覽器窗口的瀏覽器對(duì)象模型,開(kāi)發(fā)人員可以控制瀏覽器顯示的頁(yè)面以外的部分赁还。