




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
北風(fēng)網(wǎng)項(xiàng)目培訓(xùn)第1講:ECMAScript語(yǔ)法基礎(chǔ)講師:風(fēng)舞煙JavaScript系列講座本講內(nèi)容1、ECMAScript簡(jiǎn)介2、ECMAScript語(yǔ)法基礎(chǔ)一、了解ECMAScript歷史
1995年12月升陽(yáng)公司與網(wǎng)景通訊公司一起引入了JavaScript。1996年3月,網(wǎng)景通訊公司發(fā)表了支持JavaScript的網(wǎng)景導(dǎo)航者2.0。由于JavaScript作為網(wǎng)頁(yè)的客戶(hù)面腳本語(yǔ)言非常成功,微軟于1996年8月引入了InternetExplorer3.0,這個(gè)軟件支持一個(gè)“約”與JavaScript相容的JScript。1996年11月網(wǎng)景通訊公司將JavaScript提交給歐洲計(jì)算機(jī)制造商協(xié)會(huì)進(jìn)行標(biāo)準(zhǔn)化。ECMA-262的第一個(gè)版本于1997年6月被Ecma組織采納。ECMAScript是由ECMA-262標(biāo)準(zhǔn)化的腳本語(yǔ)言的名稱(chēng)。JavaScript和JScript與ECMAScript相容,但包含超出ECMAScript的功能。
版本至今為止有三個(gè)ECMA-262版本(edition)發(fā)表,版本3的修訂版3.1和第4版正在工作中。各瀏覽器廠商對(duì)ECMA的支持許多程序,尤其是網(wǎng)頁(yè)瀏覽器支持ECMAScript。瀏覽器中的ECMAScript實(shí)現(xiàn)添加了與文檔對(duì)象模型的接口,可以通過(guò)腳本改變網(wǎng)頁(yè)的內(nèi)容、結(jié)構(gòu)和樣式。JavaScript之未來(lái)JS依舊是主流前端技術(shù),正在研發(fā)的最新版本是ECMAScript4.0,加入了諸如Class,Interface,Package,Namespace以及Block等等。感覺(jué)JavaScript2.0將會(huì)變成和Java越來(lái)越接近的一種語(yǔ)言(這里指的是OO語(yǔ)法),類(lèi)似于ActionScript,Adobe已經(jīng)捐獻(xiàn)了ActionScriptVirtualMachine2的源代碼與Mozilla共同進(jìn)行JavaScript2.0引擎的開(kāi)發(fā)JavaScript是什么JavaScript的實(shí)現(xiàn)一個(gè)完整的JavaScript實(shí)現(xiàn)是由以下3個(gè)不同部分組成的.核心(ECMAScript)
文檔對(duì)象模型(DOM)
瀏覽器對(duì)象模型(BOM)
JavaScript是什么ECMAScriptECMAScript可以為不同種類(lèi)的宿主環(huán)境提供核心的腳本編程能力,因此核心的腳本語(yǔ)言是與任何特定的環(huán)境分開(kāi)進(jìn)行規(guī)定的…簡(jiǎn)單地說(shuō):ECMAScript描述了以下內(nèi)容:語(yǔ)法類(lèi)型語(yǔ)句關(guān)鍵字保留字運(yùn)算符對(duì)象JavaScript是什么
ECMAScript僅僅是一個(gè)描述,定義了腳本語(yǔ)言的所有屬性、方法和對(duì)象.其他語(yǔ)言可以實(shí)現(xiàn)ECMAScript來(lái)作為功能的基準(zhǔn),JavaScript就是這樣
ECMAScriptJavaScriptActionScriptScriptEaseECMAScript基礎(chǔ)2.1關(guān)鍵字
Javascript關(guān)鍵字(ReservedWords)是指在Javascript語(yǔ)言中有特定含義,成為Javascript語(yǔ)法中一部分的那些字。Javascript關(guān)鍵字是不能作為變量名和函數(shù)名使用的。使用Javascript關(guān)鍵字作為變量名或函數(shù)名,會(huì)使Javascript在載入過(guò)程中出現(xiàn)編譯錯(cuò)誤。
Javascript關(guān)鍵字列表:
breakdeletefunctionreturntypeof
casedoifswitchvar
catchelseinthisvoid
continuefalseinstanceofthrowwhile
debuggerfinallynewtruewith
defaultfornulltry
2.2保留字
Javascript還有一些未來(lái)關(guān)鍵字,這些字雖然現(xiàn)在沒(méi)有用到Javascript語(yǔ)言中,但是將來(lái)有可能用到。
Javascript保留字列表:
casedebuggerexportsuper
catchdefaultextendsswitch
classdofinallythrow
constenumimporttry什么是JavaScript腳本的執(zhí)行原理應(yīng)用服務(wù)器IEIE解析HTML標(biāo)簽和JavaScript腳本從服務(wù)器端下載含JavaScript的頁(yè)面返回響應(yīng)客戶(hù)端請(qǐng)求含JS的頁(yè)面發(fā)送請(qǐng)求1用戶(hù)輸入23JavaScript的基本語(yǔ)法<HTML><HEAD><TITLE>腳本的基本結(jié)構(gòu)</TITLE><SCRIPTlanguage="javascript"> varcount=0; document.write("淘寶網(wǎng)歡迎您!"); for(i=0;i<5;i++) document.write("<H2>淘寶網(wǎng)歡迎您!</H2>");</SCRIPT></HEAD><BODY><H1>BODY部分的內(nèi)容</H1></BODY></HTML>JavaScript的基本語(yǔ)法類(lèi)型轉(zhuǎn)換注釋控制語(yǔ)句運(yùn)算符號(hào)變量基本語(yǔ)法
變量的聲明和賦值
varcount;count=5;定義變量賦值“var”-用于聲明變量的關(guān)鍵字“count”-變量名varx,y,z=10;varcount=10;同時(shí)聲明和賦值變量聲明多個(gè)變量運(yùn)算符號(hào)運(yùn)算符對(duì)一個(gè)或多個(gè)變量或值(操作數(shù))進(jìn)行運(yùn)算,并返回一個(gè)新值根據(jù)所執(zhí)行的運(yùn)算,運(yùn)算符可分為以下類(lèi)別:算術(shù)運(yùn)算符
+、-、*、/、%、++、--、-(求反)比較運(yùn)算符
==、!=、>、>=、<、<=邏輯運(yùn)算符
&&、||、!邏輯控制語(yǔ)句if條件語(yǔ)句switch多分支語(yǔ)句for、while循環(huán)語(yǔ)句if(條件){//JavaScript代碼;}else{//JavaScript代碼;}switch(表達(dá)式){case常量1:
JavaScript語(yǔ)句1; break; case
常量2:
JavaScript語(yǔ)句2;
break; ...
default:JavaScript語(yǔ)句3;
}for(初始化;條件;增量){
語(yǔ)句集;
}while(條件){
語(yǔ)句集;}注釋單行注釋以//開(kāi)始,以行末結(jié)束例如:<SCRIPTlanguage=“javascript”>//表示JavaScript代碼的開(kāi)始多行注釋以/*開(kāi)始,以*/結(jié)束,符號(hào)/*……*/指示中間的語(yǔ)句是該程序中的注釋。例如:/*helloWorld.html2007-9-29
第一個(gè)JavaScript程序*/ECMAScript基礎(chǔ)-數(shù)據(jù)類(lèi)型2.3原始值和引用值原始值:存儲(chǔ)在棧(stack)中的簡(jiǎn)單數(shù)據(jù)段,也就是說(shuō),它們的值直接存儲(chǔ)在變量訪問(wèn)的位置引用值:存儲(chǔ)在堆(heap)中的對(duì)象,也就是說(shuō),存儲(chǔ)在變量處的值是一個(gè)指針,指向存儲(chǔ)對(duì)象的內(nèi)存處2.4原始類(lèi)型
ECMAScript有5種原始類(lèi)型,即Undefined、Null、Boolean、Number、和StringECMAScript基礎(chǔ)-數(shù)據(jù)類(lèi)型2.4.1Undefined類(lèi)型
Undefined只是一個(gè)值即undefined,當(dāng)聲明的變量未初使化時(shí)該變量初使化值是undefined.eg:vartemp;alert(temp)//output“undefined”
注意:function無(wú)返回值時(shí),返回的也是undefinedeg:functionfunc1(){} vartest=func1(); alert(test);//output“undefined”ECMAScript基礎(chǔ)-數(shù)據(jù)類(lèi)型2.4.2Null類(lèi)型
Null類(lèi)型的字面量的值是null.值undefined實(shí)際上是從值null派生來(lái)的,因此ECMAScript把它們定義為相等的.alert(null==undefined)//output“true”
注意:盡管這兩個(gè)值相等,但含義不同,null表示尚未存在的對(duì)象,undefined則代表變量未初使化eg:functiontest(){returnnull;}; varobj=test();alert(typeofobj)//output“[Object]”ECMAScript基礎(chǔ)-數(shù)據(jù)類(lèi)型2.4.3Boolean類(lèi)型
它們有兩個(gè)Boolean類(lèi)型的字面量值true和false2.4.4Number類(lèi)型
這種類(lèi)型即可表示32位的整數(shù),還可表示64位浮點(diǎn)數(shù)
eg:variNum=55;variNum=55.5;variNum=3.12e7;variNum=070;//八進(jìn)制;等價(jià)于10進(jìn)制的56variNum=0xAB;//十六進(jìn)制;等價(jià)于171ECMAScript基礎(chǔ)-數(shù)據(jù)類(lèi)型對(duì)值或變量調(diào)用typeof運(yùn)算符將返回下列值之一:“undefined”“boolean”“number”“string”“object”:如果變量是一種引用類(lèi)型或Null類(lèi)型的ECMAScript基礎(chǔ)-數(shù)據(jù)類(lèi)型2.4.5String類(lèi)型
String類(lèi)型的獨(dú)特之處在于,它是一個(gè)唯一沒(méi)有固定大小的原始類(lèi)型.說(shuō)明:常用的String的轉(zhuǎn)義字符
\n換行;\b空格;\r回車(chē);\\反斜杠;\’單引號(hào);\”雙引號(hào)typeof
運(yùn)算符
typeof運(yùn)算符有一個(gè)參數(shù),即要檢查的變量或值,eg:
var
stemp=“hellow”;
alert(typeof(stemp));//output“string”alert(typeof(95));//output“number”ECMAScript基礎(chǔ)-數(shù)據(jù)類(lèi)型2.5轉(zhuǎn)換
2.5.1:轉(zhuǎn)換為字符串:
a.toString()方法
1.Boolean類(lèi)型的toString()方法只是輸出“true”或”false”eg:varbtest=true;alert(btest.toString());//output“true”
2.Number類(lèi)型的toString()方法比較特殊,它有兩種模式,即默認(rèn)模式和基模式采用默認(rèn)模式,toString()方法只是用相應(yīng)的字符串輸出數(shù)字值采用基模式,可以轉(zhuǎn)換為不同進(jìn)制的;eg:varnum=10; alert(num.toString(2));//output“1010” alert(num.toString(8));//output“12” alert(num.toString(16));//output“a”ECMAScript基礎(chǔ)-數(shù)據(jù)類(lèi)型2.5.2轉(zhuǎn)換為數(shù)字
ECAScript提供了兩種把非數(shù)字轉(zhuǎn)換為數(shù)字的方法,即parseInt()和parseFloat().只有對(duì)String類(lèi)型調(diào)用這些方法,它們才能正常運(yùn)行;對(duì)其他類(lèi)型返回的都是NaN.Eg:variNum1=parseInt(“1234abc”);//return1234variNum2=parseInt(“0xA”);//return10variNum3=parseInt(“22.5”);//return22;variNum4=parseInt(“test”);//returnNaN注:parseInt方法還有基模式:
eg:alert(parseInt("10",2));//return2alert(parseInt(“10”,8));//return8alert(parseInt(“10”,10);//return10alert(parseInt(“010”))=>8alert(parseInt(“010”,8))=>8alert(parseInt(“010”,10))=>10ECMAScript基礎(chǔ)2.5.3強(qiáng)類(lèi)型轉(zhuǎn)換使用強(qiáng)類(lèi)型轉(zhuǎn)換可以轉(zhuǎn)換特定的值,即使它是另外一種類(lèi)型.(非String類(lèi)型).ECMAScript中可用的3種強(qiáng)類(lèi)型轉(zhuǎn)換如下:
Boolean(value)Number(value)String(value)
在處理ECMAScript這樣的弱類(lèi)型語(yǔ)言時(shí),強(qiáng)類(lèi)型轉(zhuǎn)換非常有用,不過(guò)應(yīng)該確保使用值的正確.ECMAScript基礎(chǔ)2.6引用類(lèi)型引用類(lèi)型通常叫作類(lèi),如:varobj=newObject();
注意:也可寫(xiě)為varobj=newObject;
2.6.1:Object類(lèi)
Object類(lèi)類(lèi)似于Java中的java.loang.object類(lèi),ECMAScript中的所有類(lèi)都由這個(gè)類(lèi)繼承而來(lái).Object類(lèi)具有下列屬性
a.Constructor--對(duì)創(chuàng)建對(duì)象的函數(shù)引用.b.Prototype–對(duì)該對(duì)象的對(duì)象原型的引用
c.HasOwnProperty(property)–判斷對(duì)象是否有某個(gè)特定的屬性.如:o.hasOwnProperty(“name”).e.toString()–返回對(duì)象的原始字符串表示.2.6.2:Boolean類(lèi)2.6.3:Number類(lèi)2.6.4:String類(lèi)2.7:instanceof運(yùn)算符在使用typeof運(yùn)算符時(shí)采用引用類(lèi)型存儲(chǔ)值時(shí)會(huì)出現(xiàn)一個(gè)問(wèn)題,無(wú)論引用的是什么類(lèi)型的對(duì)象,它都會(huì)返回”object”.ESCMAScript引用另一個(gè)運(yùn)算符instanceof來(lái)解決這個(gè)問(wèn)題如:varostring=newString(“hellow”);alert(ostringinstanceofString);//output“true”2.8、部分運(yùn)算符2.8.1:deletedelete運(yùn)算符刪除對(duì)以前定義的對(duì)象屬性和方法的引用。如:
varo=newObject();="tom";alert();//output“tom”;delete;alert();//outpub“undefinded”注:delete運(yùn)算符不能刪除開(kāi)發(fā)者未定義的屬性和方法。如:deleteo.toString//error2.8:語(yǔ)句
2.8.1:if(condition1)statement1;elseif(condtion2)statement2;elsestatement3;2.8.2:迭代語(yǔ)句
do{statement}while(expression)While語(yǔ)句
While(expression)statementfor語(yǔ)句如:for(vari=0;i<10;i++){alert(i);}for-in語(yǔ)句
for(spropinwindow){alert(sprop);}breakcontinuewith語(yǔ)句
with(expression)statementeg:varsMessage=“hellowworld”;with(sMessage){alert(toUpperCase());}switch語(yǔ)句
同c#中的swith語(yǔ)法,和java的switch相同,不同的是switch語(yǔ)句可以用于字符串。
函數(shù)
functionfunctionName(arg0,arg1…,argn){statement[returnvalue;]}無(wú)重載
ECMAScript中的函數(shù)不能重載.
可用相同的名字在同一個(gè)作用域中定義,而不會(huì)引發(fā)錯(cuò)誤,但真正使用的是后一個(gè)函數(shù).argument對(duì)象在函數(shù)代碼中,使用特殊對(duì)象arguments,開(kāi)發(fā)者無(wú)需明確指出參數(shù)名,就能訪問(wèn)它。如:functionsayHi(){if(arguments[0]==undefined){
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 西方國(guó)家的移民政策與社會(huì)融入研究試題及答案
- 驅(qū)動(dòng)力西方政治制度的政治文化試題及答案
- 網(wǎng)絡(luò)工程師考試成功案例分享及試題及答案
- 用戶(hù)參與設(shè)計(jì)的重要性與試題與答案
- 西方公共政策與政治制度的關(guān)系試題及答案
- 軟件設(shè)計(jì)師考試數(shù)據(jù)分析題試題及答案
- 項(xiàng)目實(shí)施階段的監(jiān)控與調(diào)整工作試題及答案
- 軟件設(shè)計(jì)師考試實(shí)際案例與理論結(jié)合分析試題及答案
- 社會(huì)責(zé)任與政策變革之間的關(guān)系試題及答案
- 機(jī)電工程行業(yè)創(chuàng)新與挑戰(zhàn)的結(jié)合試題及答案
- 浙江開(kāi)放大學(xué)2025年《社區(qū)治理》終考測(cè)試答案
- 田畝轉(zhuǎn)戶(hù)協(xié)議書(shū)
- 資產(chǎn)委托購(gòu)買(mǎi)協(xié)議書(shū)
- 2025-2030中國(guó)半導(dǎo)體行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 庭院綠化養(yǎng)護(hù)合同協(xié)議書(shū)
- 退休返聘合同和協(xié)議書(shū)
- 2025年MySQL開(kāi)發(fā)趨勢(shì)試題及答案研究
- 山東省濟(jì)寧市2025年高考模擬考試化學(xué)試題及答案(濟(jì)寧三模)
- 胃癌護(hù)理個(gè)案護(hù)理
- 新版高中物理必做實(shí)驗(yàn)?zāi)夸浖捌鞑?(電子版)
- 中國(guó)法律史-第二次平時(shí)作業(yè)-國(guó)開(kāi)-參考資料
評(píng)論
0/150
提交評(píng)論