JavaScript概述
JavaScript簡(jiǎn)史
JavaScript誕生于1995年。當(dāng)時(shí)的web正在日益興起丈莺,人們對(duì)客戶端語(yǔ)言的需求也越來(lái)越強(qiáng)烈草穆。當(dāng)時(shí)走在技術(shù)革新最前沿的Netscape公司決定開發(fā)一種客戶端語(yǔ)言敢伸,用來(lái)處理簡(jiǎn)單的輸入驗(yàn)證。當(dāng)時(shí)就職于Netscape公司的布蘭登-艾奇(Brendan Eich)悯姊,開始著手為1995年2月發(fā)布的Netscape Navigator2開發(fā)一種名為L(zhǎng)iveScript的腳本語(yǔ)言——該語(yǔ)言能同時(shí)在瀏覽器和服務(wù)器中使用。為了在發(fā)布前完成開發(fā)贩毕,Netscape與Sun公司建立了一個(gè)開發(fā)聯(lián)盟悯许。在發(fā)布前夕,Netscape為了搭上Java熱的順風(fēng)車辉阶,臨時(shí)把LiveScript改名為JavaScript先壕。由于JavaScript 1.0 取得了巨大的成功,Netscape隨即在Netscape Navigator 3 中又發(fā)布了JavaScript 1.1 睛藻。web雖然羽翼未豐启上,但是關(guān)注度卻屢創(chuàng)新高。在這樣的背景下店印,Netscape自定位為領(lǐng)袖公司冈在。與此同時(shí)微軟攜自家的IE參與競(jìng)爭(zhēng),隨后微軟在Netscape Navigator 3 發(fā)布不久就在IE 3 中加入了名為JScript的JavaScript實(shí)現(xiàn)按摘。微軟推出的JavaScript實(shí)現(xiàn)有兩個(gè)不同版本:Netscape Navigator中的JavaScript包券、IE中的JScript。由于當(dāng)時(shí)沒(méi)有規(guī)范的JavaScript語(yǔ)法和特性炫贤。兩個(gè)版本并存的局面暴露了這個(gè)問(wèn)題溅固。隨著JavaScript的發(fā)展,其標(biāo)準(zhǔn)化問(wèn)題被提上了議事日程兰珍。1997年侍郭,以JavaScript 1.1 為藍(lán)本的建議被提交得了歐洲計(jì)算機(jī)制造商協(xié)會(huì)(ECMA. European Comouter Manufacturers Association)。該協(xié)會(huì)指定39號(hào)技術(shù)委員會(huì)負(fù)責(zé)JavaScript的規(guī)范標(biāo)準(zhǔn)化,經(jīng)歷了數(shù)個(gè)月定義了一種名為ECMAScript的新腳本語(yǔ)言標(biāo)準(zhǔn)亮元。第二年猛计,ISO/IEC(國(guó)際標(biāo)準(zhǔn)化組織和國(guó)際電工委員會(huì))也采用了ECMAScript作為標(biāo)準(zhǔn)。自此以后爆捞,瀏覽器開發(fā)商開始致力于將ECMAScript作為各自JavaScript實(shí)現(xiàn)的基礎(chǔ)奉瘤,也在不同程度上取得了成功。
JavaScript概念及執(zhí)行原理
一煮甥、概念:JavaScript被稱為Web腳本語(yǔ)言盗温,因此,JavaScript是一種輕型的成肘、解釋性的腳本語(yǔ)言,是一種瀏覽器內(nèi)的解釋器解釋執(zhí)行的程序語(yǔ)言
二卖局、JavaScript執(zhí)行原理:當(dāng)客戶端向服務(wù)器請(qǐng)求某個(gè)頁(yè)面時(shí),服務(wù)器端將整個(gè)頁(yè)面中包含JavaScript的腳本代碼發(fā)送回客戶機(jī)器艇劫,客戶端瀏覽器根據(jù)發(fā)回的網(wǎng)頁(yè)文件從上往下逐行讀取并進(jìn)行解析其中的HTML代碼或腳本代碼吼驶。(<script></script>里面的代碼表示腳本代碼,執(zhí)行腳本代碼時(shí)店煞,邊解釋邊執(zhí)行)
JavaScript腳本代碼
HTML文件混合方式
在網(wǎng)頁(yè)的<script></script>標(biāo)簽對(duì)中直接編寫腳本程序代碼蟹演。
文件引用方式
當(dāng)JavaScript代碼較少時(shí),完全可以使用HTML文件混合方式編寫腳本程序代碼顷蟀,但當(dāng)頁(yè)面需要嵌入更多JavaScript代碼時(shí)酒请,如果只寫在一個(gè)頁(yè)面中,就會(huì)顯得頁(yè)面很復(fù)雜鸣个。因此可以將JavaScript代碼單獨(dú)創(chuàng)建一個(gè)文件羞反,文件擴(kuò)展名為.js,然后在HTML文檔中引用囤萤。
注意:帶有src的<script></srcript>標(biāo)簽不應(yīng)該在<script></sctipt>標(biāo)簽之間包含額外的JavaScript代碼昼窗。如果包含,則里面的代碼將不會(huì)被執(zhí)行,嵌入的代碼會(huì)被忽略涛舍。
HTML代碼嵌入方式
<a href="javascript:js代碼"></a>
JavaScript核心語(yǔ)法
變量
JavaScript通常利用變量來(lái)參與個(gè)中運(yùn)算澄惊,實(shí)現(xiàn)動(dòng)態(tài)的效果。
在定義變量時(shí)要遵守如下規(guī)則:
1.第一個(gè)字符必須是字母富雅、下劃線掸驱、或美元符號(hào)。
2.其他字符可以是字母下滑線没佑、美元符號(hào)或數(shù)字毕贼。
3.區(qū)分大小寫。
4.不能與關(guān)鍵字同名蛤奢。
注意:
JavaScript的變量采用弱類型形式,即聲明變量時(shí)不必確定類型,而是在使用或賦值時(shí)自動(dòng)確定其數(shù)據(jù)類型鬼癣。
數(shù)據(jù)類型
有5種基本數(shù)據(jù)類型:undefined陶贼、null、boolean扣溺、number和string骇窍。
一種復(fù)雜數(shù)據(jù)類型:object對(duì)象類型。
1.typeof操作符
通過(guò)typeof操作符锥余,我們可以檢測(cè)變量的數(shù)據(jù)類型。
如:
注意:
1.其中undefind表示沒(méi)有定義痢掠。number表示整數(shù)驱犹、小數(shù)。null表示空類型足画,表示已有值雄驹,但值為空對(duì)象,使用typeof輸出返回object淹辞。
2.JavaScript不區(qū)分單引號(hào)和雙引號(hào)医舆,但不能出現(xiàn)單引號(hào)和雙引號(hào)不匹配。如:
var?str="hello';?或 var str='hee";
3.如果在字符串內(nèi)想同時(shí)用雙引號(hào)和單引號(hào)象缀,要么外面一層用雙引號(hào)蔬将,里面一層用單引號(hào),要么外面一層用單引號(hào)央星,里面一層用雙引號(hào)霞怀。如:
var str="hello ?'world' "?或:var str='hello "world" '
運(yùn)算符
含有的運(yùn)算符:
+ :加法
-?:減法
*?:乘法
/?:除法
%?:系數(shù)
++?:遞加
-?-??:遞減
JavaScript注釋
1.//表示單行注釋。
2.以/*開始莉给,以*/結(jié)束毙石,符號(hào)/*.....*/表示中間語(yǔ)句應(yīng)該時(shí)程序中的注釋。
JavaScript的流程控制語(yǔ)句
1.順序結(jié)構(gòu):就是按照程序語(yǔ)句出現(xiàn)的順序依次執(zhí)行颓遏。
2.選擇結(jié)構(gòu):在編寫程序中徐矩,通常要根據(jù)特定的條件來(lái)執(zhí)行不同的語(yǔ)句,JavaScript中用選擇結(jié)構(gòu)來(lái)達(dá)到這種需求叁幢,JavaScript結(jié)構(gòu)語(yǔ)句有if語(yǔ)句和switch語(yǔ)句滤灯。
3.循環(huán)結(jié)構(gòu):循環(huán)結(jié)構(gòu)有while語(yǔ)句、do-while語(yǔ)句和for語(yǔ)句遥皂。
經(jīng)驗(yàn):
要判斷變量的值是否為undefined或null可以簡(jiǎn)寫為:
if(!變量名){
}力喷。