版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
JavaScript程序設(shè)計(jì)第二章:JavaScript基本概念王瑞內(nèi)容語(yǔ)法關(guān)鍵字變量數(shù)據(jù)類(lèi)型操作符控制語(yǔ)句函數(shù)語(yǔ)法ECMAScript第3版區(qū)分大小寫(xiě):ECMAScript中的一切(變量、函數(shù)名操作符)都區(qū)分大小寫(xiě)。標(biāo)識(shí)符:第一個(gè)字符必須是一個(gè)字母、“_”或“$”。其它字符可以是字母、“_”、“$”或數(shù)字。不能將關(guān)鍵字或保留字作為標(biāo)識(shí)符。語(yǔ)法ECMAScript第3版注釋//單行注釋/*多行注釋*/語(yǔ)句ECMAScript中的語(yǔ)句以一個(gè)分號(hào)結(jié)尾;如果省略分號(hào),則由解析器確定語(yǔ)句的結(jié)尾。varsum=a+bvarsum=a+b;//推薦多條語(yǔ)句組成的語(yǔ)句塊與C語(yǔ)言相同,使用“{}”:if(test){…………}關(guān)鍵字保留字變量ECMAScript的變量是松散類(lèi)型的,也就是說(shuō)可以保存任何類(lèi)型的數(shù)據(jù)。變量?jī)H僅是用于保存值的占位符。聲明變量可使用var關(guān)鍵字(var關(guān)鍵字,聲明的變量是該變量在作用域中的局部變量,不使用var創(chuàng)建的變量是全局變量)。varmessage;可以聲明變量時(shí),賦初值。varmessage=“success”;數(shù)據(jù)類(lèi)型ECMAScript中有5種簡(jiǎn)單數(shù)據(jù)類(lèi)型(基本數(shù)據(jù)類(lèi)型):undefine、null、boolean、number、string。還有一種復(fù)雜數(shù)據(jù)類(lèi)型:Object,Object本質(zhì)上是由一組無(wú)序的名值對(duì)組成的。Undefined類(lèi)型Undefined類(lèi)型只有一個(gè)值,即undefined。在一變量沒(méi)有初始化時(shí),這個(gè)變量的值就是undefined。例:varmessage;alert(message==undefined);//true注:undefined值,是變量已聲明,但沒(méi)有初始化。不是未聲明?。。ull類(lèi)型Null類(lèi)型是第二個(gè)只有一個(gè)值的數(shù)據(jù)類(lèi)型,這個(gè)值就是null。從邏輯上看,null值表示一個(gè)空對(duì)象指針,而這也正是使用typeof檢測(cè)null值時(shí),返回“object”的原因。varcar=null;alert(typeofcar);//object注:如果定義一個(gè)變量準(zhǔn)備用來(lái)保存對(duì)象,那么最好將該變量初始化為null而不是其它值。這樣可以通過(guò)判斷其值是否為null,得知變量是否已經(jīng)引用了一個(gè)對(duì)象。實(shí)際上,undefined派生自null,因此ECMA-262規(guī)定對(duì)它們的相等性測(cè)試要返回“true”:alert(car==undefined);//trueBoolean類(lèi)型該類(lèi)型只有兩個(gè)值true、false。注意boolean類(lèi)型的字面值true、false是區(qū)分大小寫(xiě)的。True和False都不是boolean值。雖然boolean類(lèi)型的字面值只有true、false。但是ECMAScript中所有類(lèi)型的值都有與這兩個(gè)boolean值等價(jià)的值。要將一個(gè)值轉(zhuǎn)換為其對(duì)應(yīng)的boolean值,可以調(diào)用轉(zhuǎn)型函數(shù)Boolean()。隱式轉(zhuǎn)換:varmsg=“ok”;
if(msg)……數(shù)據(jù)類(lèi)型轉(zhuǎn)換為true的值轉(zhuǎn)換為false的值BooleantruefalseString任何非空字符串“”空字符串Number任何非零數(shù)字值0和NaNObject任何對(duì)象nullUndefinedn/a(notapplicable不適用)undefinedNumber類(lèi)型可以表示整數(shù)和浮點(diǎn)數(shù)。數(shù)值可以用十進(jìn)制、8進(jìn)制和16進(jìn)制來(lái)表示。但在計(jì)算時(shí)都被轉(zhuǎn)換成十進(jìn)制。Varnum=10;//10進(jìn)制表示Varnumb=070;//用8進(jìn)制表示的56Varnumb2=0XA;//用16進(jìn)制表示的10浮點(diǎn)數(shù)包含小數(shù)點(diǎn),并在小數(shù)點(diǎn)后面必須至少有一位數(shù)字,小數(shù)字前可以沒(méi)有數(shù)字(不推薦)。由于保存浮點(diǎn)數(shù)需要的內(nèi)存空間是整數(shù)的兩倍,因此ECMAScript會(huì)不失時(shí)機(jī)的將浮點(diǎn)值轉(zhuǎn)換為整型值。如:Varflo=1.0;Varflo1=1.;可以使用科學(xué)記數(shù)法表示數(shù)值:varnum=3e-2;//0.03Number類(lèi)型采用IEEE754格式,浮點(diǎn)數(shù)的精度遠(yuǎn)不如整數(shù)。如0.1和0.2相加的結(jié)果不是0.3,而是0.30000000000000004。
Number類(lèi)型數(shù)據(jù)范圍最小數(shù)值保存在Number.MIN_VALUE中,在大多數(shù)瀏覽器中,這個(gè)值是5e-324;最大值在Number.MAX_VALUE中,值是1.7976931348623157e+308。如果計(jì)算的結(jié)果超出數(shù)值范圍,那么這個(gè)數(shù)值將被自動(dòng)轉(zhuǎn)換成特殊的Infinity(Number.POSITIVE_INFINITY)值。如果這個(gè)值是負(fù)值,則地轉(zhuǎn)換成-infinity(Number.NEGATIVE_INFINITY)。判斷數(shù)值是否在范圍內(nèi),可使用函數(shù)isFinite(數(shù)值):isFinite(33);//trueisFinite(Number.POSITIVE_INFINITY);//falseNumber類(lèi)型NaN即非數(shù)值(NotaNumber),表示一個(gè)本來(lái)要返回?cái)?shù)值的操作數(shù)未返回?cái)?shù)值的情況(一種異常情況,這樣就不會(huì)拋出錯(cuò)誤了)。例如,在其他編程語(yǔ)言中,0除以0都會(huì)導(dǎo)致錯(cuò)誤,從而停止代碼執(zhí)行。但在ECMAScript中,返回NaN。NaN有兩個(gè)非同尋常的特點(diǎn)。首先,任何涉及NaN的操作都會(huì)返回NaN。其次,NaN與任何值都不等,包括NaN自身。isNaN(變量)函數(shù),用以測(cè)試參數(shù)是否“不是數(shù)值”,不是數(shù)值時(shí)返回true。isNaN(NaN);//trueisNaN(10);//falseisNaN(“10”);//false(“10”可以轉(zhuǎn)換為10)isNaN(“blue”);//true(不可以轉(zhuǎn)換為數(shù)值)isNaN(true);//false(true可被轉(zhuǎn)換為1)Number類(lèi)型數(shù)值轉(zhuǎn)換有3個(gè)函數(shù)可以實(shí)現(xiàn)把非數(shù)值轉(zhuǎn)換為數(shù)值:Number()、parseInt()、parseFloat()。Number()函數(shù)轉(zhuǎn)換規(guī)則:boolean:true->1,false->0Null:0Undefined:NaN字符串:內(nèi)容是數(shù)值的轉(zhuǎn)換為數(shù)值,其它轉(zhuǎn)換為NaN。對(duì)象:調(diào)用對(duì)象的valueof(),如果是NaN,則調(diào)用toString()。例:Number(“china”);//NaNNumber(“”);//0Number(“00011”);//11Number(true);//1Number("0x9");//9Number類(lèi)型parseInt()在轉(zhuǎn)換字符串時(shí),更多的是看其是否符合數(shù)值模式。它會(huì)忽略字符串前面的空格。如果第一個(gè)不是數(shù)字或負(fù)號(hào),返回NaN。如果字符串前面是數(shù)字后面是其它字符,則取前面的數(shù)字。如果是以0開(kāi)頭,轉(zhuǎn)換成8進(jìn)制數(shù),以0X開(kāi)頭解析為16進(jìn)制數(shù)。parseInt(“123abc”);//123parseInt(“”);//NaNNumber(“”);//0parseInt(“0xA“);//0XAparseInt(22.5);//22parseInt(“070”);//070(8進(jìn)制)56DparseInt(“70”);//70parseInt(,)函數(shù)還提供了第2個(gè)參數(shù),用以確定要轉(zhuǎn)換的數(shù)值進(jìn)制。當(dāng)指定進(jìn)制時(shí),被轉(zhuǎn)換的16進(jìn)制和8進(jìn)制數(shù),可以不要0X和0開(kāi)頭。parseInt(“0xFA”,16);//250parseInt(“FA”,16);//250parseInt(“FA”);//NaNparseInt(“10”,8);//8parseInt(“10”,10);//10Number類(lèi)型parseFloat()從第一個(gè)字符開(kāi)始解析,當(dāng)遇到無(wú)效的字符或第二個(gè)小數(shù)點(diǎn)為止。始終忽略前導(dǎo)的0。但16進(jìn)制的字符串始終會(huì)轉(zhuǎn)換為0,只能解析10進(jìn)制值。如果解析的數(shù)值沒(méi)有小數(shù)點(diǎn),則返回整數(shù)類(lèi)型。parseFloat(“123abc”);//123parseFloat(“0xa”);//10parseFloat(“22.5”);//22.5parseFloat(“22.22.22”)://22.22parseFloat(“0908.5”);//908.5parseFloat(“3.14e5”);//314000String類(lèi)型由16位Unicode字體組成的字符序列??梢杂桑ā啊保┗颍ā┍硎?,但需成對(duì)使用。轉(zhuǎn)義字符字符串長(zhǎng)度Vartxt=“china”;Alert(txt.length);//5String類(lèi)型轉(zhuǎn)換為字符串?dāng)?shù)值、boolean、對(duì)象、字符串都有toString()方法。null和undefined沒(méi)有toString()方法。一般情況下toString()方法沒(méi)有參數(shù),也可以通過(guò)參數(shù),指定要轉(zhuǎn)換的數(shù)值類(lèi)型的進(jìn)制。如varnum=10;Alert(num.toString(8));//12Alert(num.toString(16));//A注:在不知道要轉(zhuǎn)換的值是否是null或undefined時(shí),可使用String()方法。將任何類(lèi)型轉(zhuǎn)換為字符串。String(null);//返回“null”Varval;Alert(String(val));//返回”undefined”O(jiān)bject類(lèi)型ECMAScript中的對(duì)象其實(shí)就是一組數(shù)據(jù)和功能的集合。對(duì)象可以通過(guò)new操作符后跟對(duì)象類(lèi)型來(lái)創(chuàng)建。而創(chuàng)建Object類(lèi)型的實(shí)例并為其添加屬性和方法,就可以創(chuàng)建自定義對(duì)象。Varobj=newObject();Typeof操作符使用typeof操作符可以用來(lái)檢測(cè)變量的數(shù)據(jù)類(lèi)型。根據(jù)變量的數(shù)據(jù)類(lèi)型返回下列字符串:Undefined:值未定義boolean:是boolean類(lèi)型String:是字符串類(lèi)型Number:是數(shù)值類(lèi)型Object:是對(duì)象類(lèi)型Function:是函數(shù)例:alert(typeof95)-----number操作符一元操作符ECMA-262描述了一組用于操作數(shù)值的操作符,包括算術(shù)操作符(加、減)、位操作符、關(guān)系操作符和相等操作符。一元操作符遞增和遞減操作符(++、--),可分為前置型和后置型。前置型在變量使用前先進(jìn)行遞增或遞減操作,后置型在使用后再進(jìn)行遞增或遞減操作。如:vara=10;a=a+++1;//11alert(a);//11a=++a+4;//16alert(a);//16a=1;++a;a++;=>a+1;操作符一元操作符遞增和遞減操作符(++、--)對(duì)于boolean值先將值false轉(zhuǎn)換為0,再進(jìn)行++、--操作。對(duì)于true轉(zhuǎn)換為1,再進(jìn)行++、--操作。varaa=false;alert(++aa);//1alert(++false);//錯(cuò)誤varbb=true;alert(++bb);//2操作符一元操作符遞增和遞減操作符(++、--)對(duì)于字符串先將值轉(zhuǎn)換為數(shù)值類(lèi)型,再進(jìn)行++、--操作。varaa=“china”;alert(++aa);//NaNvaraa=“123china”;alert(++aa);//NaNvaraa="123";alert(++aa);//124操作符一元操作符遞增和遞減操作符(++、--)對(duì)于Object類(lèi)型先將值轉(zhuǎn)換為數(shù)值類(lèi)型(調(diào)用對(duì)象的valueOf方法如果為NaN,則調(diào)用對(duì)象的toSting()方法),再進(jìn)行++、--操作。varo={valueOf:function(){return-1}};alert(++o);//0操作符一元操作符一元加\減操作符一元加操作符以一個(gè)(+)表示,不會(huì)對(duì)數(shù)值產(chǎn)生任何影響。減操作符以(-)表示,將值變成負(fù)數(shù)。以于非數(shù)值類(lèi)型,會(huì)先像Number()轉(zhuǎn)型函數(shù)一樣對(duì)這個(gè)值進(jìn)行轉(zhuǎn)換。定義+操作結(jié)果-操作結(jié)果vars1=“01”+s1;1-s1-1Vars2=“1.1”+s21.1-s2-1.1Vars3=“z”+s3NaN-s3NaNVarb=false;+b0-b0Varf=1.1+f1.1-f-1.1Varv={valueOf:function(){return-1}};+v-1-v1操作符位操作符位操作符對(duì)于有符號(hào)整數(shù),32位中的前31位用于表示整數(shù)的值。第32位表示數(shù)值的符號(hào)(符號(hào)位):0表示正數(shù),1表示負(fù)數(shù)。負(fù)數(shù)使用2進(jìn)制數(shù)的補(bǔ)碼表示。按位非(~)執(zhí)行按位非的運(yùn)算就是返回?cái)?shù)值的反碼。將每一位上的0和1進(jìn)行取反(0變成1,1變成0)。操作符位操作符按位與(&)按位與操作就是將兩個(gè)2進(jìn)制數(shù)的每一位對(duì)齊,然后按對(duì)應(yīng)的位之間進(jìn)行“與”操作。當(dāng)兩個(gè)位都是1時(shí),返回1。其它返回0。操作符位操作符按位或(|)按位與操作就是將兩個(gè)2進(jìn)制數(shù)的每一位對(duì)齊,然后按對(duì)應(yīng)的位之間進(jìn)行“或”操作。當(dāng)兩個(gè)數(shù)對(duì)應(yīng)的位只要有一個(gè)為1時(shí),返回1(兩個(gè)都為1時(shí),也返回1)。兩個(gè)都是0時(shí),返回0。操作符位操作符按位異或(^)按位與操作就是將兩個(gè)2進(jìn)制數(shù)的每一位對(duì)齊,然后按對(duì)應(yīng)的位之間進(jìn)行“異或”操作。當(dāng)兩個(gè)數(shù)對(duì)應(yīng)的位不同時(shí)為0或1(即不同)時(shí),返回1。其它都返回0。操作符位操作符左移(<<)將2進(jìn)制數(shù)向左移動(dòng)指定的位數(shù)。每左移一位相當(dāng)于該數(shù)值乘以2。操作符位操作符有符號(hào)的右移(>>)將2進(jìn)制數(shù)向右移動(dòng)指定的位數(shù)。但保留符號(hào)位(即正負(fù)號(hào)標(biāo)記)。操作符位操作符無(wú)符號(hào)的右移(>>>)將2進(jìn)制數(shù)向右移動(dòng)指定的位數(shù)。不保留符號(hào)位,以0填充空位。對(duì)于正數(shù)沒(méi)有影響。但負(fù)數(shù)會(huì)變?yōu)檎龜?shù)。操作符邏輯操作符邏輯操作符有“邏輯非(!)”、“邏輯或(||)”、“邏輯與(&&)”。操作符布爾操作符邏輯非(?。┰摬僮鞣祷匾粋€(gè)boolean值。邏輯非操作符將它的操作數(shù)轉(zhuǎn)換為一個(gè)boolean值,然后進(jìn)行求反。操作數(shù)轉(zhuǎn)換后的boolean值!是一個(gè)對(duì)象trueFalse是一個(gè)空字符串FalseTrue是一個(gè)非空字符串TrueFalse數(shù)值0FalseTrue非0數(shù)值TrueFalse是nullFalseTrueNaNFalseTrueundefinedfalsetrue操作符布爾操作符邏輯與(并且)(&&)該操作符有兩個(gè)操作數(shù)。當(dāng)且僅當(dāng)兩個(gè)操作數(shù)都為true時(shí),返回true。否則返回false。邏輯與可以應(yīng)用于任何類(lèi)型的操作數(shù),而不僅是boolean值。在有一個(gè)操作數(shù)不是boolean值的情況下,邏輯與操作不一定返回布爾值;它遵循如下原則:如果第一個(gè)操作數(shù)是對(duì)象,返回第二個(gè)操作數(shù);如果兩個(gè)操作數(shù)都是對(duì)象,返回第二個(gè)操作數(shù);如果第二個(gè)操作數(shù)是對(duì)象,第一個(gè)操作數(shù)求值結(jié)果是true,返回第二個(gè)操作數(shù),否則返回第一個(gè)操作數(shù);如果第一個(gè)操作數(shù)為null,則返回null;如果第一個(gè)操作數(shù)為undefined,則返回undefined;如果第一個(gè)操作數(shù)為NaN,則返回NaN。操作符布爾操作符邏輯或(或者)(||)該操作符有兩個(gè)操作數(shù)。當(dāng)其中一個(gè)操作數(shù)為true時(shí),返回true。都為False時(shí),返回false。邏輯或可以應(yīng)用于任何類(lèi)型的操作數(shù),在有一個(gè)操作數(shù)不是boolean值的情況下,邏輯或操作不一定返回布爾值;它遵循如下原則:如果第一個(gè)操作數(shù)是對(duì)象,返回第一個(gè)操作數(shù);如果兩個(gè)操作數(shù)都是對(duì)象,返回第一個(gè)操作數(shù);如果第一個(gè)操作數(shù)求值結(jié)果為false,返回第二個(gè)操作數(shù);如果有兩個(gè)操作數(shù)為null,則返回null;如果有兩個(gè)操作數(shù)為undefined,則返回undefined;如果有兩個(gè)操作數(shù)為NaN,則返回NaN。操作符乘性操作符ECMAScript定義了3個(gè)乘性操作符:乘法、除法、求模。乘法(*)在操作數(shù)為非數(shù)值情況下會(huì)執(zhí)行自動(dòng)的類(lèi)型轉(zhuǎn)換(使用Number())。規(guī)則如下:如果乘積結(jié)果超過(guò)ECMAScript數(shù)值的表示范圍,返回infinity或-infinity;如果有一個(gè)數(shù)是NaN,則結(jié)果是NaN;如果infinity與0相乘,結(jié)果是NaN;如果infinity與非0數(shù)值相乘,結(jié)果是infinity;如果是infinity與infinity相乘,結(jié)果是infinity;如果有一個(gè)操作數(shù)不是數(shù)值,則在后臺(tái)調(diào)用Number()轉(zhuǎn)換,再應(yīng)用上面的規(guī)則。操作符乘性操作符除法(/)在操作數(shù)為非數(shù)值情況下會(huì)執(zhí)行自動(dòng)的類(lèi)型轉(zhuǎn)換(使用Number())。規(guī)則如下:如果除計(jì)算結(jié)果超過(guò)ECMAScript數(shù)值的表示范圍,返回infinity或-infinity;如果有一個(gè)數(shù)是NaN,則結(jié)果是NaN;如果是infinity被infinity除,結(jié)果是NaN;如果是infinity被任意數(shù)值除,則結(jié)果是infinity;如果0被0除,結(jié)果是NaN;如果是非0的數(shù),被0除。結(jié)果是infinity或-infinity,符號(hào)取決與操作數(shù);(7/0)=infinity如果有一個(gè)操作數(shù)不是數(shù)值,則在后臺(tái)調(diào)用Number()轉(zhuǎn)換,再應(yīng)用上面的規(guī)則。操作符乘性操作符求模(%)求余數(shù)。在操作數(shù)為非數(shù)值情況下會(huì)執(zhí)行自動(dòng)的類(lèi)型轉(zhuǎn)換(使用Number())。規(guī)則如下:如果被除數(shù)是無(wú)窮大值,而除數(shù)是有限大的值,則結(jié)果是NaN;(Number.POSITIVE_INFINITY%33)如果被除數(shù)是有限大的數(shù)值,而除數(shù)是0,則結(jié)果是NaN;(44%0)如果是infinity被infinity除,結(jié)果是NaN;如果被除數(shù)是有限大的值,而除數(shù)是無(wú)窮大的值,則結(jié)果是被除數(shù);(44%Number.POSITIVE_INFINITY)如果被除數(shù)是0,結(jié)果是0;如果有一個(gè)操作數(shù)不是數(shù)值,則在后臺(tái)調(diào)用Number()轉(zhuǎn)換,再應(yīng)用上面的規(guī)則。操作符加性操作符(+)加法操作符,如果兩個(gè)操作數(shù)都是數(shù)值,執(zhí)行常規(guī)的加法計(jì)算,根據(jù)下列規(guī)則返回結(jié)果:如果有一個(gè)數(shù)是NaN,則結(jié)果是NaN;如果是infinity加infinity,結(jié)果是infinity;如果是-infinity加-infinity,結(jié)果是-infinity;如果是+infinity加-infinity,結(jié)果是NaN;(+/-)0加(+/-)0,結(jié)果為0。如果兩個(gè)操作數(shù)都是字符串,則將兩個(gè)字串拼接起來(lái);如果只有一個(gè)是字符串,則將另一個(gè)操作數(shù)轉(zhuǎn)換為字符串,再拼接起來(lái)。(對(duì)象或boolean對(duì)其調(diào)用toString())操作符減性操作符(-)減法操作符,如果兩個(gè)操作數(shù)都是數(shù)值,執(zhí)行常規(guī)的減法計(jì)算,根據(jù)下列規(guī)則返回結(jié)果:如果有一個(gè)數(shù)是NaN,則結(jié)果是NaN;如果是infinity減infinity,結(jié)果是NaN;如果是-infinity減-infinity,結(jié)果是NaN;如果是+infinity減-infinity,結(jié)果是infinity;如果是-infinity減infinity,結(jié)果是-infinity;(+/-)0減(+/-)0,結(jié)果為0。如果有一個(gè)操作數(shù)是字符串、布爾值、null或undefined,則先在后臺(tái)調(diào)用Number()將其轉(zhuǎn)換為數(shù)值。如果有一個(gè)操作數(shù)是對(duì)象,則調(diào)用對(duì)象的valueOf()方法,如果沒(méi)有valueOf()方法,調(diào)用toString()方法,并將得到的字符串轉(zhuǎn)換為數(shù)值。操作符關(guān)系操作符關(guān)系操作符<,>,<=,>=這幾個(gè)操作符都返回boolean值。如果操作數(shù)不都是數(shù)值類(lèi)型時(shí),進(jìn)行轉(zhuǎn)換的規(guī)則如下:如果兩個(gè)操作數(shù)都是字符串,則比較兩個(gè)字符串對(duì)應(yīng)的字符編碼值;(字符串比較的是字符編碼的值,不是字母的前后位置,大寫(xiě)字母的編碼值?。┤绻粋€(gè)操作數(shù)是數(shù)值,則將另一個(gè)轉(zhuǎn)換為數(shù)值再比較;如果一個(gè)操作數(shù)是對(duì)象,則調(diào)用其valueOf()ortoString()方法,再就前面說(shuō)的規(guī)則比較;如果一個(gè)操作數(shù)是boolean類(lèi)型,則先轉(zhuǎn)換為數(shù)值,再比較。任何數(shù)與NaN進(jìn)行關(guān)系比較,結(jié)果都是false。操作符相等操作符相等(==)和不相等(!=)在轉(zhuǎn)換不同的數(shù)據(jù)類(lèi)型時(shí),相等和不相等操作符遵循下列規(guī)則:如果有一個(gè)操作數(shù)是布爾值,則在比較相等性前,先將其轉(zhuǎn)換為數(shù)值;如果一個(gè)操作數(shù)是字符串,另一個(gè)是數(shù)值,在比較前先將字符串轉(zhuǎn)換為數(shù)值;如果一個(gè)操作數(shù)是對(duì)象,另一個(gè)操作數(shù)不是,則調(diào)用對(duì)象的valueOf()方法;Null與undefined是相等的;在比較相等性之前,不能將null、undefined轉(zhuǎn)換為其他任何值。如果有一個(gè)是NaN,相等返回false,不相等返回true;NaN與NaN不相等。如果兩個(gè)操作數(shù)都是對(duì)象,則比較它們是不是同一個(gè)對(duì)象。是同一個(gè)對(duì)象返回true,否則返回false。(兩個(gè)都是對(duì)象,則比較的是內(nèi)存地址)操作符相等操作符全等(===)和(!==)全不等除了在比較之前不轉(zhuǎn)換操作數(shù)之外,全等不全等與相等和不相等操作符沒(méi)有區(qū)別。Varresult1=‘55’==55;//trueVarresult2=‘55’===55;//false;Varresult3=‘55’!=55;//falseVarresult4=‘55’!==55;//true條件操作符Variable=boolean_expression?true_value:false_value;相當(dāng)于:if(boolean_expression){returntrue_value;}else{returnfalse_value;}
賦值操作符簡(jiǎn)單的賦值操作符由(=)表示,表示將操作符右邊的值賦給左邊的變量。Varnum=10;如果在等于號(hào)前面添加(+、-、*、/、<<、>>、>>>)運(yùn)算符,可以合并運(yùn)算與賦值操作。但不能提高效能。語(yǔ)句在JavaScript中,一條語(yǔ)句以“;”結(jié)束。也可以不加“;”,由解析器自己決定。推薦的使用方式:每條語(yǔ)句以“;”結(jié)束。語(yǔ)句ifif(condition){statement;}else{Statement;}if(condition){statement;}elseif(condition){statement;}elseif(condition){statement;}else{statement;}語(yǔ)句do…whilewhiledo{statement;}while(condition);while(condition){statement;}語(yǔ)句forfor-infor(initialzation;expression;post-loop-expression)Statement;Example:for(vari=0;i<100;i++){
alert(i);}For(propertyinexpression)statement;
example:
for(varpropinwindow){ alert(prop);//輸出window對(duì)象的全部屬性}vararr=newArray("a","b");for(vara=0;a<arr.length;a++)alert(arr[a]);for(variinarr)//i=0i=1alert(arr[i]);3段式語(yǔ)句labelLabel語(yǔ)句可以在代碼中添加標(biāo)簽,以便將來(lái)使用。語(yǔ)法:label:statementExample:start:for(……){}此例中的“start”標(biāo)記,將來(lái)可以被contionue或break語(yǔ)句引用。語(yǔ)句break和continue用以退出循環(huán)或執(zhí)行下一次循環(huán)。在不與label配合使用的情況下,暫停當(dāng)前的循環(huán)語(yǔ)句。當(dāng)與label標(biāo)記配合使用的情況下,可以定位到要退出的語(yǔ)句塊或下一次要執(zhí)行的語(yǔ)句塊。varnum=0;outermost:for(vari=0;i<10;i++){for(varj=0;j<10;j++){
if(i==5&&j==5)
breakoutermost;
num++;
}
}alert(num);語(yǔ)句withwith語(yǔ)句的作用是將代碼的作用域設(shè)置到一個(gè)特定的對(duì)象中。如定義with語(yǔ)句的目的主要是為了
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年紅外遮蔽誘餌及偽裝陶瓷粉料項(xiàng)目融資計(jì)劃書(shū)
- 獸醫(yī)寄生蟲(chóng)病學(xué)試題庫(kù)(含參考答案)
- 養(yǎng)老院老人心理輔導(dǎo)支持制度
- 養(yǎng)老院老人緊急救援人員行為規(guī)范制度
- 《腸內(nèi)營(yíng)養(yǎng)護(hù)理》課件
- 房屋架木安全協(xié)議書(shū)范文(2篇)
- 2025年南寧貨運(yùn)從業(yè)資格證的考題
- 2025年杭州貨運(yùn)從業(yè)資格證考試題庫(kù)答案大全
- 2024年物聯(lián)網(wǎng)智能家居系統(tǒng)研發(fā)與銷(xiāo)售合同
- 2025年哈密貨運(yùn)從業(yè)資格證考題
- COPD(慢性阻塞性肺病)診治指南(2023年中文版)
- 群控系統(tǒng)試運(yùn)行及調(diào)試方案
- 校園安全教育(完美版)ppt
- 新教材《鄉(xiāng)土中國(guó)》第篇《長(zhǎng)老統(tǒng)治》課件-高一語(yǔ)文統(tǒng)編版必修上冊(cè)
- 履約情況證明
- 道路用液體石油瀝青試驗(yàn)檢測(cè)報(bào)告
- 水庫(kù)建設(shè)項(xiàng)目施工組織設(shè)計(jì)
- 外科學(xué)教案-下肢骨關(guān)節(jié)損傷
- 建設(shè)工程施工現(xiàn)場(chǎng)項(xiàng)目部人員委派書(shū)
- 國(guó)家開(kāi)放大學(xué)實(shí)驗(yàn)學(xué)院生活中的法律第三單元測(cè)驗(yàn)答案
- 四年級(jí)數(shù)學(xué)上冊(cè)課件-8. 田忌賽馬-對(duì)策問(wèn)題(66)-人教版(共11張ppt)
評(píng)論
0/150
提交評(píng)論