第1講:ECMAScript語法基礎(chǔ)_第1頁
第1講:ECMAScript語法基礎(chǔ)_第2頁
第1講:ECMAScript語法基礎(chǔ)_第3頁
第1講:ECMAScript語法基礎(chǔ)_第4頁
第1講:ECMAScript語法基礎(chǔ)_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

北風(fēng)網(wǎng)項(xiàng)目培訓(xùn)第1講:ECMAScript語法基礎(chǔ)講師:風(fēng)舞煙JavaScript系列講座本講內(nèi)容1、ECMAScript簡介2、ECMAScript語法基礎(chǔ)一、了解ECMAScript歷史

1995年12月升陽公司與網(wǎng)景通訊公司一起引入了JavaScript。1996年3月,網(wǎng)景通訊公司發(fā)表了支持JavaScript的網(wǎng)景導(dǎo)航者2.0。由于JavaScript作為網(wǎng)頁的客戶面腳本語言非常成功,微軟于1996年8月引入了InternetExplorer3.0,這個軟件支持一個“約”與JavaScript相容的JScript。1996年11月網(wǎng)景通訊公司將JavaScript提交給歐洲計(jì)算機(jī)制造商協(xié)會進(jìn)行標(biāo)準(zhǔn)化。ECMA-262的第一個版本于1997年6月被Ecma組織采納。ECMAScript是由ECMA-262標(biāo)準(zhǔn)化的腳本語言的名稱。JavaScript和JScript與ECMAScript相容,但包含超出ECMAScript的功能。

版本至今為止有三個ECMA-262版本(edition)發(fā)表,版本3的修訂版3.1和第4版正在工作中。各瀏覽器廠商對ECMA的支持許多程序,尤其是網(wǎng)頁瀏覽器支持ECMAScript。瀏覽器中的ECMAScript實(shí)現(xiàn)添加了與文檔對象模型的接口,可以通過腳本改變網(wǎng)頁的內(nèi)容、結(jié)構(gòu)和樣式。JavaScript之未來JS依舊是主流前端技術(shù),正在研發(fā)的最新版本是ECMAScript4.0,加入了諸如Class,Interface,Package,Namespace以及Block等等。感覺JavaScript2.0將會變成和Java越來越接近的一種語言(這里指的是OO語法),類似于ActionScript,Adobe已經(jīng)捐獻(xiàn)了ActionScriptVirtualMachine2的源代碼與Mozilla共同進(jìn)行JavaScript2.0引擎的開發(fā)JavaScript是什么JavaScript的實(shí)現(xiàn)一個完整的JavaScript實(shí)現(xiàn)是由以下3個不同部分組成的.核心(ECMAScript)

文檔對象模型(DOM)

瀏覽器對象模型(BOM)

JavaScript是什么ECMAScriptECMAScript可以為不同種類的宿主環(huán)境提供核心的腳本編程能力,因此核心的腳本語言是與任何特定的環(huán)境分開進(jìn)行規(guī)定的…簡單地說:ECMAScript描述了以下內(nèi)容:語法類型語句關(guān)鍵字保留字運(yùn)算符對象JavaScript是什么

ECMAScript僅僅是一個描述,定義了腳本語言的所有屬性、方法和對象.其他語言可以實(shí)現(xiàn)ECMAScript來作為功能的基準(zhǔn),JavaScript就是這樣

ECMAScriptJavaScriptActionScriptScriptEaseECMAScript基礎(chǔ)2.1關(guān)鍵字

Javascript關(guān)鍵字(ReservedWords)是指在Javascript語言中有特定含義,成為Javascript語法中一部分的那些字。Javascript關(guān)鍵字是不能作為變量名和函數(shù)名使用的。使用Javascript關(guān)鍵字作為變量名或函數(shù)名,會使Javascript在載入過程中出現(xiàn)編譯錯誤。

Javascript關(guān)鍵字列表:

breakdeletefunctionreturntypeof

casedoifswitchvar

catchelseinthisvoid

continuefalseinstanceofthrowwhile

debuggerfinallynewtruewith

defaultfornulltry

2.2保留字

Javascript還有一些未來關(guān)鍵字,這些字雖然現(xiàn)在沒有用到Javascript語言中,但是將來有可能用到。

Javascript保留字列表:

casedebuggerexportsuper

catchdefaultextendsswitch

classdofinallythrow

constenumimporttry什么是JavaScript腳本的執(zhí)行原理應(yīng)用服務(wù)器IEIE解析HTML標(biāo)簽和JavaScript腳本從服務(wù)器端下載含JavaScript的頁面返回響應(yīng)客戶端請求含JS的頁面發(fā)送請求1用戶輸入23JavaScript的基本語法<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的基本語法類型轉(zhuǎn)換注釋控制語句運(yùn)算符號變量基本語法

變量的聲明和賦值

varcount;count=5;定義變量賦值“var”-用于聲明變量的關(guān)鍵字“count”-變量名varx,y,z=10;varcount=10;同時聲明和賦值變量聲明多個變量運(yùn)算符號運(yùn)算符對一個或多個變量或值(操作數(shù))進(jìn)行運(yùn)算,并返回一個新值根據(jù)所執(zhí)行的運(yùn)算,運(yùn)算符可分為以下類別:算術(shù)運(yùn)算符

+、-、*、/、%、++、--、-(求反)比較運(yùn)算符

==、!=、>、>=、<、<=邏輯運(yùn)算符

&&、||、!邏輯控制語句if條件語句switch多分支語句for、while循環(huán)語句if(條件){//JavaScript代碼;}else{//JavaScript代碼;}switch(表達(dá)式){case常量1:

JavaScript語句1; break; case

常量2:

JavaScript語句2;

break; ...

default:JavaScript語句3;

}for(初始化;條件;增量){

語句集;

}while(條件){

語句集;}注釋單行注釋以//開始,以行末結(jié)束例如:<SCRIPTlanguage=“javascript”>//表示JavaScript代碼的開始多行注釋以/*開始,以*/結(jié)束,符號/*……*/指示中間的語句是該程序中的注釋。例如:/*helloWorld.html2007-9-29

第一個JavaScript程序*/ECMAScript基礎(chǔ)-數(shù)據(jù)類型2.3原始值和引用值原始值:存儲在棧(stack)中的簡單數(shù)據(jù)段,也就是說,它們的值直接存儲在變量訪問的位置引用值:存儲在堆(heap)中的對象,也就是說,存儲在變量處的值是一個指針,指向存儲對象的內(nèi)存處2.4原始類型

ECMAScript有5種原始類型,即Undefined、Null、Boolean、Number、和StringECMAScript基礎(chǔ)-數(shù)據(jù)類型2.4.1Undefined類型

Undefined只是一個值即undefined,當(dāng)聲明的變量未初使化時該變量初使化值是undefined.eg:vartemp;alert(temp)//output“undefined”

注意:function無返回值時,返回的也是undefinedeg:functionfunc1(){} vartest=func1(); alert(test);//output“undefined”ECMAScript基礎(chǔ)-數(shù)據(jù)類型2.4.2Null類型

Null類型的字面量的值是null.值undefined實(shí)際上是從值null派生來的,因此ECMAScript把它們定義為相等的.alert(null==undefined)//output“true”

注意:盡管這兩個值相等,但含義不同,null表示尚未存在的對象,undefined則代表變量未初使化eg:functiontest(){returnnull;}; varobj=test();alert(typeofobj)//output“[Object]”ECMAScript基礎(chǔ)-數(shù)據(jù)類型2.4.3Boolean類型

它們有兩個Boolean類型的字面量值true和false2.4.4Number類型

這種類型即可表示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ù)類型對值或變量調(diào)用typeof運(yùn)算符將返回下列值之一:“undefined”“boolean”“number”“string”“object”:如果變量是一種引用類型或Null類型的ECMAScript基礎(chǔ)-數(shù)據(jù)類型2.4.5String類型

String類型的獨(dú)特之處在于,它是一個唯一沒有固定大小的原始類型.說明:常用的String的轉(zhuǎn)義字符

\n換行;\b空格;\r回車;\\反斜杠;\’單引號;\”雙引號typeof

運(yùn)算符

typeof運(yùn)算符有一個參數(shù),即要檢查的變量或值,eg:

var

stemp=“hellow”;

alert(typeof(stemp));//output“string”alert(typeof(95));//output“number”ECMAScript基礎(chǔ)-數(shù)據(jù)類型2.5轉(zhuǎn)換

2.5.1:轉(zhuǎn)換為字符串:

a.toString()方法

1.Boolean類型的toString()方法只是輸出“true”或”false”eg:varbtest=true;alert(btest.toString());//output“true”

2.Number類型的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ù)類型2.5.2轉(zhuǎn)換為數(shù)字

ECAScript提供了兩種把非數(shù)字轉(zhuǎn)換為數(shù)字的方法,即parseInt()和parseFloat().只有對String類型調(diào)用這些方法,它們才能正常運(yùn)行;對其他類型返回的都是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)類型轉(zhuǎn)換使用強(qiáng)類型轉(zhuǎn)換可以轉(zhuǎn)換特定的值,即使它是另外一種類型.(非String類型).ECMAScript中可用的3種強(qiáng)類型轉(zhuǎn)換如下:

Boolean(value)Number(value)String(value)

在處理ECMAScript這樣的弱類型語言時,強(qiáng)類型轉(zhuǎn)換非常有用,不過應(yīng)該確保使用值的正確.ECMAScript基礎(chǔ)2.6引用類型引用類型通常叫作類,如:varobj=newObject();

注意:也可寫為varobj=newObject;

2.6.1:Object類

Object類類似于Java中的java.loang.object類,ECMAScript中的所有類都由這個類繼承而來.Object類具有下列屬性

a.Constructor--對創(chuàng)建對象的函數(shù)引用.b.Prototype–對該對象的對象原型的引用

c.HasOwnProperty(property)–判斷對象是否有某個特定的屬性.如:o.hasOwnProperty(“name”).e.toString()–返回對象的原始字符串表示.2.6.2:Boolean類2.6.3:Number類2.6.4:String類2.7:instanceof運(yùn)算符在使用typeof運(yùn)算符時采用引用類型存儲值時會出現(xiàn)一個問題,無論引用的是什么類型的對象,它都會返回”object”.ESCMAScript引用另一個運(yùn)算符instanceof來解決這個問題如:varostring=newString(“hellow”);alert(ostringinstanceofString);//output“true”2.8、部分運(yùn)算符2.8.1:deletedelete運(yùn)算符刪除對以前定義的對象屬性和方法的引用。如:

varo=newObject();="tom";alert();//output“tom”;delete;alert();//outpub“undefinded”注:delete運(yùn)算符不能刪除開發(fā)者未定義的屬性和方法。如:deleteo.toString//error2.8:語句

2.8.1:if(condition1)statement1;elseif(condtion2)statement2;elsestatement3;2.8.2:迭代語句

do{statement}while(expression)While語句

While(expression)statementfor語句如:for(vari=0;i<10;i++){alert(i);}for-in語句

for(spropinwindow){alert(sprop);}breakcontinuewith語句

with(expression)statementeg:varsMessage=“hellowworld”;with(sMessage){alert(toUpperCase());}switch語句

同c#中的swith語法,和java的switch相同,不同的是switch語句可以用于字符串。

函數(shù)

functionfunctionName(arg0,arg1…,argn){statement[returnvalue;]}無重載

ECMAScript中的函數(shù)不能重載.

可用相同的名字在同一個作用域中定義,而不會引發(fā)錯誤,但真正使用的是后一個函數(shù).argument對象在函數(shù)代碼中,使用特殊對象arguments,開發(fā)者無需明確指出參數(shù)名,就能訪問它。如:functionsayHi(){if(arguments[0]==undefined){

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論