版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第四講:表達(dá)式與運(yùn)算符課程內(nèi)容安排表達(dá)式操作數(shù)運(yùn)算符介紹算術(shù)運(yùn)算符關(guān)系運(yùn)算符字符串運(yùn)算符賦值運(yùn)算符邏輯運(yùn)算符位運(yùn)算符其它運(yùn)算符運(yùn)算符的優(yōu)先級(jí)表達(dá)式表達(dá)式表達(dá)式是產(chǎn)生一個(gè)結(jié)果值的式子,JavaScript的表達(dá)式是由常量、變量和運(yùn)算符等組成。表達(dá)式可以作為參數(shù)傳遞給函數(shù),或?qū)⒈磉_(dá)式結(jié)果賦予給變量保存起來(lái)。表達(dá)式的結(jié)果值有多種類型,比如布爾型、字符串型或數(shù)值型等,因此常有邏輯表達(dá)式、數(shù)值表達(dá)式和布爾表達(dá)式之說(shuō)。下面舉例說(shuō)明如何定義和使用表達(dá)式。4-1操作數(shù)操作數(shù)操作數(shù)是指表達(dá)式中的變量或常量,在javascript中也包含表達(dá)式的返回值(實(shí)際上就是一個(gè)常量),常提供計(jì)算用的數(shù)據(jù)。下面是操作數(shù)在表達(dá)式中的形態(tài)。 (A+B+C)/D 其中A、B、C、D就是操作數(shù),而“+”和“/”則是操作符,操作符將在下一節(jié)介紹。操作數(shù)的數(shù)據(jù)類型由表達(dá)式的類型和運(yùn)算符所支持的數(shù)據(jù)類型來(lái)決定的,上述代碼中若表達(dá)式是數(shù)值表達(dá)式則需要A、B、C和D的類型皆為數(shù)值或可以轉(zhuǎn)換為數(shù)值。運(yùn)算符介紹運(yùn)算符運(yùn)算符是指程序設(shè)計(jì)語(yǔ)言中有運(yùn)算意義的符號(hào),類似于普通數(shù)學(xué)里運(yùn)算符。通常,每一門數(shù)學(xué)都定義了一個(gè)數(shù)集和在數(shù)集上可以進(jìn)行的運(yùn)算。程序設(shè)計(jì)語(yǔ)言也一樣,規(guī)定了其支持的數(shù)據(jù)類型以及數(shù)據(jù)可以進(jìn)行的運(yùn)算。JavaScript的運(yùn)算符包含算術(shù)運(yùn)算符、邏輯運(yùn)算符和一些特殊的運(yùn)算符。在JavaScript中有單目和多目之分,單目運(yùn)算符帶一個(gè)操作數(shù),多目運(yùn)算符帶多個(gè)操作數(shù),如下所示。 (1+2)×3 //數(shù)學(xué)表達(dá)式 ++A //左結(jié)合遞增操作數(shù)的類型表達(dá)式中的操作數(shù)要么是常量要么是變量,常量和變量都有其特定的數(shù)據(jù)類型。構(gòu)成表達(dá)式的操作數(shù)的數(shù)據(jù)類型是由變量或常量的類型來(lái)確定。算術(shù)運(yùn)算符加法運(yùn)算符加法運(yùn)算符使用數(shù)學(xué)符號(hào)“+”,屬于雙目運(yùn)算運(yùn)算符,返回兩個(gè)操作數(shù)的算術(shù)和。操作數(shù)的類型要求為數(shù)值型,如果是字符串型則意義不同,主要運(yùn)用在數(shù)值求和的場(chǎng)合,其語(yǔ)法如下代碼所示。
操作數(shù)1+操作數(shù)2。示例如下所示。01 <scriptlanguage="javascript"> //腳本程序開始02 <!--03 vardepartmentA=1000; //部門A1000人04 vardepartmentB=375; //部分B375人05 vartotal=departmentA+departmentB; //公司總?cè)藬?shù)06 document.write("公司總?cè)藬?shù):"+total); //輸出人數(shù)信息07 -->08 </script> 算術(shù)運(yùn)算符減法運(yùn)算符減法運(yùn)算符使用數(shù)學(xué)符號(hào)“-”,屬于雙目運(yùn)算符,返回兩個(gè)操作數(shù)的算術(shù)差,操作數(shù)類型要求為數(shù)值型。含義與數(shù)學(xué)上的減法計(jì)算完全一樣,使用的形式如下代碼所示。
操作數(shù)1–操作數(shù)201 <scriptlanguage="javascript"> //腳本程序開始02 <!--03 vartotalGas="20升"; //汽油總量04 varused="7.5升"; //開出100公里后消耗05 varoverplus=parseFloat(totalGas)-parseFloat(used); //剩余06 document.write("車子已經(jīng)開了100公里,還剩汽油"+overplus+"升"); //100公里時(shí)輸出提示07 -->08 </script> 4-5算術(shù)運(yùn)算符乘法運(yùn)算符乘法運(yùn)算符使用符號(hào)“*”,屬于雙目運(yùn)算符,返回兩個(gè)操作數(shù)的算術(shù)積。運(yùn)算意義上完全等同于數(shù)學(xué)上的乘法計(jì)算,使用語(yǔ)法如下所示。
操作數(shù)*操作數(shù)2
01<scriptlanguage="javascript"> 02 varemployee=300; //雇員總數(shù)03 varprize=370; //每人獎(jiǎng)金數(shù)額04 vartotal=employee*prize; //預(yù)算總額05 alert("預(yù)算:"+total+"元"); //輸出總額06 </script>
算術(shù)運(yùn)算符除法運(yùn)算符除法運(yùn)算符使用符號(hào)“/”,也是屬于雙目運(yùn)算符,操作數(shù)類型要求為數(shù)值型。其返回兩個(gè)操作數(shù)之商,JavaScript返回的商是實(shí)數(shù)集內(nèi)的數(shù)據(jù),也就是浮點(diǎn)型數(shù)據(jù)。意義上等同于數(shù)學(xué)中的除法運(yùn)算,因此可用在求商的場(chǎng)合,使用語(yǔ)法如下。
操作數(shù)1/操作數(shù)2
01 <scriptlanguage="javascript"> //腳本程序開始02 <!--03 vartotal=1000; //1000元04 varthieves=3; //3個(gè)賊05 alert("每人瓜分所得:"+total/thieves+"元");//輸出3人瓜分后所得數(shù)額06 -->07 </script> 算術(shù)運(yùn)算符模運(yùn)算符取模運(yùn)算符使用符號(hào)“%”,其作用是求一個(gè)數(shù)除以另一個(gè)數(shù)的余數(shù)。操作數(shù)的類型要求為數(shù)值型或能轉(zhuǎn)換為數(shù)值型的類型,屬于雙目運(yùn)算符。事實(shí)上“?!笨梢赃@樣理解,如手表上的小時(shí)刻度,每到12點(diǎn)以后就是1點(diǎn),此鐘表的模為12。通常取模運(yùn)算可以取求某個(gè)數(shù)的倍數(shù)。01 <scriptlanguage="javascript"> 02 for(i=1;i<1000;i++) //找出0到1000中3的公倍數(shù)03 {04 if(i%3==0) //當(dāng)模3為0時(shí)即是3位數(shù)05 {06 document.write(i+""); //輸出07 }08 }09 </script> 4-8
算術(shù)運(yùn)算符負(fù)號(hào)運(yùn)算符負(fù)號(hào)運(yùn)行符使用符號(hào)“-”,取負(fù)也就是等于取反。等同于數(shù)學(xué)意義的上負(fù)號(hào),屬于單目運(yùn)算符,語(yǔ)法如下。
-操作數(shù)這里就負(fù)號(hào)運(yùn)算符來(lái)看一個(gè)例子。01 <scriptlanguage="javascript"> 02 <!--03 vara=-1; //負(fù)數(shù)04 varb=-a; //取反05 alert(a+"取反后得:"+b); //輸出06 -->07 </script> 算術(shù)運(yùn)算符正號(hào)運(yùn)算符正號(hào)運(yùn)算符使用符號(hào)“+”,針對(duì)數(shù)值類型操作數(shù),意義上等同于數(shù)學(xué)上的正號(hào)。屬于單目運(yùn)算符。
+操作數(shù)遞增運(yùn)算符代碼的裝入遞增運(yùn)算符使用符號(hào)“++”,也稱為自增運(yùn)算符,屬于單目運(yùn)算符??墒箶?shù)值類型的變量值自增一,操作數(shù)只能是變量。使用形式分左結(jié)合與右結(jié)合兩種,左結(jié)合在表達(dá)式中的效果是先遞增再使用,右結(jié)果則是先使用再遞增。語(yǔ)法如下: 變量名++; //右結(jié)束遞增 ++變量名; //左結(jié)合遞增代碼的執(zhí)行4-11算術(shù)運(yùn)算符遞減運(yùn)算符遞減運(yùn)算符使用符號(hào)“--”,也稱為自減運(yùn)算符,可使變量的值自減一。效果與遞增運(yùn)算符完全相反,也有左結(jié)合與右結(jié)合之分,情況與遞增運(yùn)算符相同,下面來(lái)看一個(gè)例子。01 <scriptlanguage="javascript"> 02 <!--03 vara=5; //定義一個(gè)數(shù)字變量04 document.write(a); //輸出a原來(lái)的值05 document.write("<br>"); //輸出換行標(biāo)簽06 a--; //a自減一(右結(jié)合)07 document.write(a); //輸出變量a08 document.write("<br>"); //輸出換行09 --a; //a自減一(左結(jié)合)10 document.write(a); //輸出變量a11 document.write("<br>"); //輸出換行12 if(--a==2)
//測(cè)試左、右結(jié)合位于表達(dá)式中的情況13 {14 document.write("<li>左結(jié)合的情形"); //輸出提示信息15 }16 if(a--==2) //等于2時(shí)17 {18 document.write("<li>右結(jié)合的情形"); //輸出提示信息4-1219 }20 -->21 </script>
關(guān)系運(yùn)算符相等運(yùn)算符相等運(yùn)算符使用符號(hào)“==”,判斷兩個(gè)操作數(shù)是否相等。如果相等返回布爾值true,否則返回false。屬于雙目運(yùn)算符,兩個(gè)操作數(shù)的數(shù)據(jù)類型可以任意。運(yùn)行時(shí),“==”操作符將兩端的操作數(shù)轉(zhuǎn)換為同一種數(shù)據(jù)類型后再作比較。使用語(yǔ)法如下:
操作數(shù)A==操作數(shù)B等同運(yùn)算符前述及的相等運(yùn)算符“==”進(jìn)行的是非嚴(yán)格意義上的相等性判斷,即通過(guò)類型轉(zhuǎn)為后相等的也返回true。而等同運(yùn)算符“===”是嚴(yán)格意義上的相等,兩個(gè)值和它們的類型完全一致時(shí)才返回true,使用語(yǔ)法如下:4-14
操作數(shù)1===操作數(shù)2關(guān)系運(yùn)算符
不等運(yùn)算符不相等運(yùn)算符使用符號(hào)“!=”,屬于雙目運(yùn)算符,返回一個(gè)布爾值表示兩個(gè)操作數(shù)是否相等。兩個(gè)操作數(shù)類型任意,同時(shí)可以是變量也可以是常量。使用語(yǔ)法如下:
操作數(shù)1!=操作數(shù)2不等同運(yùn)算符不等同運(yùn)算符,使用符號(hào)“!==”,屬于雙目運(yùn)算符。效果與等同運(yùn)算符正好相反,如果兩個(gè)數(shù)嚴(yán)格不相等則返回true,使用語(yǔ)法如下。
操作數(shù)1!==操作數(shù)2關(guān)系運(yùn)算符
小/大于運(yùn)算符小于運(yùn)算符是判斷第一個(gè)操作數(shù)是否小于第二個(gè)操作數(shù)的運(yùn)算符,返回一個(gè)布爾值。使用符號(hào)“<”表示,常用于邏輯表達(dá)式中。使用語(yǔ)法如下:4-16 操作數(shù)1<操作數(shù)2大于運(yùn)算符與小于運(yùn)算符相似,效果相反。4-17instanceof運(yùn)算符instanceof運(yùn)算符返回一個(gè)布爾值,表明某對(duì)象是否是某個(gè)類的實(shí)例。得到一個(gè)對(duì)象時(shí),有時(shí)需要得知其屬于哪個(gè)類,確定對(duì)象的身份。使用語(yǔ)法如下:
result=ObjinstanceofClassEditPlus
關(guān)系運(yùn)算符
instanceof運(yùn)算符varnamelist=new Array(”Lily”,”Bob”,”Petter”);varnameJet=”Jet”;if(nameListinstanceofArray){nameList.push(nameJet);}if(nameJetinstanceofArray){}//instanceof.html關(guān)系運(yùn)算符
小/大于或等于運(yùn)算符小于或等于符運(yùn)算符判斷第一個(gè)操作數(shù)和第二個(gè)操作數(shù)間是否是小于等于關(guān)系,使用符號(hào)“<=”。當(dāng)?shù)谝粋€(gè)操作數(shù)小于或等于第二個(gè)操作數(shù)時(shí)表達(dá)式返回true,否則返回false。
in運(yùn)算符in運(yùn)算符檢查對(duì)象中是否有某特定的屬性。可以通過(guò)in運(yùn)算符取得數(shù)組索引集合,這是個(gè)非常有用的運(yùn)算符。語(yǔ)法如下:4-18*
Result=propertyinObject;字符串運(yùn)算符字符串運(yùn)算符字符串是一種數(shù)據(jù)類型,同樣也存在相應(yīng)的計(jì)算,因此程序設(shè)計(jì)語(yǔ)言也為字符串定義了相應(yīng)的運(yùn)算符。主要包括+、>、<、>=和<=這幾種,這里主要講解運(yùn)算符“+”。運(yùn)算符“+”,稱為連接運(yùn)算符,它的作用是將兩個(gè)字符串按順序連接成為新的字符串。大大簡(jiǎn)化了字符串表達(dá)式的寫法。這個(gè)運(yùn)算符在字符串處理中使用是相當(dāng)?shù)膹V泛。在前面見(jiàn)得也比較多了,這里就不詳細(xì)講解了。varstr1=“今天星期幾了?”; //字符串變量varstr2=“星期五”; //字符串變量document.write(str1+str2); //輸出連接后的字符串賦值運(yùn)算符賦值運(yùn)算符賦值運(yùn)算符用“=”表示,用于給變量賦值。賦值運(yùn)算符將值與變量綁定起來(lái),也就是說(shuō),值寫入了變量所引用的內(nèi)存單元。通常,給變量填入數(shù)據(jù)最直接的辦法就是使用賦值運(yùn)算符將值賦予變量。如下代碼所示:
varname=“Jet”; 以上代碼將“Jet”賦予變量name,“=”運(yùn)算符左邊的操作數(shù)稱為左值,其右邊的操作數(shù)稱為右值。左值必須是變量,右值可以是變量、常量或表達(dá)式。
邏輯運(yùn)算符邏輯與、或、非運(yùn)算符
邏輯與運(yùn)算符用“&&”表示,邏輯或運(yùn)算符用“||”表示,它們屬于雙目運(yùn)算符,操作數(shù)被當(dāng)成布爾類型,可以是變量也可以是常量。邏輯與運(yùn)算符使用語(yǔ)法如下所示。 操作數(shù)1&&操作數(shù)2 “||”運(yùn)算符語(yǔ)法如下:操作數(shù)1||操作數(shù)2邏輯非運(yùn)算符“!”,屬于單目運(yùn)算符,對(duì)操作數(shù)的邏輯值取反,操作數(shù)可以是變量或常量。4-19位運(yùn)算符位與、位或、位異或和位非運(yùn)算符
位與、位或、位異或分別使用符號(hào)“&”、“|”、“^”,屬于雙目運(yùn)算符。位與運(yùn)算是指把兩個(gè)操作數(shù)所對(duì)應(yīng)的二進(jìn)制位相與,對(duì)應(yīng)兩個(gè)位都為1時(shí)結(jié)果值中對(duì)應(yīng)位也為1,否則為0。4-20位或是指對(duì)應(yīng)位間如果都不為0則結(jié)果的相應(yīng)位為1,否則為0。位異或是當(dāng)兩個(gè)操作數(shù)對(duì)應(yīng)位不相同時(shí)結(jié)果的相應(yīng)位即為1,否則為0。4-21位非運(yùn)算符“~”實(shí)現(xiàn)對(duì)操作數(shù)按位取反運(yùn)算,屬于單目運(yùn)算符。操作數(shù)可以是任意JavaScript類型的常量或變量位運(yùn)算符位非運(yùn)算符“~”實(shí)現(xiàn)對(duì)操作數(shù)按位取反運(yùn)算,屬于單目運(yùn)算符。操作數(shù)可以是任意JavaScript類型的常量或變量。Javascript中對(duì)數(shù)據(jù)的位非運(yùn)算有其獨(dú)特的規(guī)律,看起來(lái)并不完全等同于其他編程語(yǔ)言所進(jìn)行的位級(jí)運(yùn)算。對(duì)于字符串?dāng)?shù)據(jù),按位取反后得-1.對(duì)布爾值true,取反后得-2;布爾值false,取反后得-1.對(duì)數(shù)值,+N取反后得-(N+1),-N得N-1.4-22邏輯運(yùn)算符左移運(yùn)算符 、帶符號(hào)右移運(yùn)算符和高位補(bǔ)0右移運(yùn)算符左移位運(yùn)算符“<<”,實(shí)現(xiàn)整體向左移動(dòng)低位補(bǔ)0的功能,屬于雙目運(yùn)算符。向左移動(dòng)N位,相當(dāng)于原數(shù)乘以2n. 當(dāng)移動(dòng)的是有符號(hào)數(shù),左邊空出的位用數(shù)的符號(hào)位填充。向右移動(dòng)超出的位將被丟棄,稱為帶符號(hào)右移位操作。其運(yùn)算符為“>>”。前面已經(jīng)提及右移運(yùn)算時(shí)符號(hào)位的處理問(wèn)題,是針對(duì)有符號(hào)數(shù)的情況。當(dāng)數(shù)是無(wú)符號(hào)數(shù)時(shí),右移后在左邊空出的位上填充0,稱為無(wú)符號(hào)右移位。對(duì)應(yīng)的運(yùn)算符是“>>>”。其它運(yùn)算符條件運(yùn)算符、new運(yùn)算符、void運(yùn)算符、類型檢測(cè)運(yùn)算符、對(duì)象屬性存取運(yùn)算符、數(shù)組存取運(yùn)算符、delete運(yùn)算符、this運(yùn)算符等等。條件運(yùn)算符,可以根據(jù)條件在兩個(gè)語(yǔ)句間選擇一個(gè)來(lái)執(zhí)行。使用符號(hào)“?:”,屬于三目運(yùn)算符,語(yǔ)法如下:
條件表達(dá)式?語(yǔ)句1:語(yǔ)句2
如果語(yǔ)句1為真,則執(zhí)行語(yǔ)句1,否則則執(zhí)行語(yǔ)句2。new運(yùn)算符,它是創(chuàng)建對(duì)象的一種方式??梢灾苯邮褂胣ew運(yùn)算符創(chuàng)建一個(gè)類的實(shí)例對(duì)象。void運(yùn)算符是用在表達(dá)式不需要返回值時(shí),可以使用void運(yùn)算符來(lái)避免表達(dá)式返回值。通過(guò)使用typeof運(yùn)算符即可獲得數(shù)據(jù)的類型名。typeof返回一個(gè)表達(dá)式的值的類型名。其它運(yùn)算符對(duì)象屬性存取運(yùn)算符,用符號(hào)“.”表示。其作用是讀取對(duì)象的屬性、或保存值到對(duì)象的屬性、或調(diào)用對(duì)象的方法。數(shù)組存取運(yùn)算符,JavaScript提供“[]”運(yùn)算符用于存取數(shù)組元素,方括號(hào)中是要存取的元素的下標(biāo)。這個(gè)運(yùn)算符大大方便了數(shù)組的編程。delete運(yùn)算符,它可以刪除對(duì)象的一個(gè)屬性或數(shù)組的一個(gè)元素,JavaScript對(duì)象的屬性可以動(dòng)態(tài)添加。對(duì)于動(dòng)態(tài)添加的屬性可以用delete運(yùn)算符將其刪除。4-25this運(yùn)算符,“this”嚴(yán)格的說(shuō)是一個(gè)關(guān)鍵字,也可以理解為運(yùn)算符。面向?qū)ο蟮木幊讨幸卯?dāng)前對(duì)象,this運(yùn)算符可以返回當(dāng)前對(duì)象的引用。this通常用在對(duì)象構(gòu)造函數(shù)中,用來(lái)引用函數(shù)對(duì)象本身。
運(yùn)算符的優(yōu)先級(jí)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院行政科招聘面試題及參考解析
- 國(guó)電投煤炭開發(fā)部總經(jīng)理競(jìng)聘考試題庫(kù)含答案
- 工程師-面試題及答案
- 2025年智慧消防管理系統(tǒng)項(xiàng)目可行性研究報(bào)告
- 2025年3D打印產(chǎn)業(yè)鏈完善項(xiàng)目可行性研究報(bào)告
- 2025年醫(yī)療大數(shù)據(jù)分析平臺(tái)開發(fā)項(xiàng)目可行性研究報(bào)告
- 2025年創(chuàng)意產(chǎn)業(yè)園區(qū)開發(fā)可行性研究報(bào)告
- 2025年短視頻平臺(tái)變現(xiàn)模式創(chuàng)新可行性研究報(bào)告
- 2025年非洲市場(chǎng)投資開發(fā)項(xiàng)目可行性研究報(bào)告
- 虛擬現(xiàn)實(shí) 游戲的新風(fēng)口
- 病房結(jié)核應(yīng)急預(yù)案
- 2026考研政治模擬預(yù)測(cè)卷及答案
- 2025-2026學(xué)年八年級(jí)數(shù)學(xué)上冊(cè)人教版(2024)第17章 因式分解 單元測(cè)試·基礎(chǔ)卷
- 血透室護(hù)理組長(zhǎng)競(jìng)選
- 風(fēng)水顧問(wèn)聘請(qǐng)合同范本
- 2025年量子計(jì)算驅(qū)動(dòng)的電力系統(tǒng)彈性提升-探索與展望報(bào)告-
- 2025-2026學(xué)年部編版八年級(jí)數(shù)學(xué)上冊(cè)期中考試試卷及答案
- 廣東5年(2021-2025)高考生物真題分類匯編:專題05 遺傳的分子基礎(chǔ)及生物的變異與進(jìn)化(原卷版)
- 盒馬鮮生促銷方案
- 2025年政府采購(gòu)評(píng)審專家考試題庫(kù)含答案
- 云南中考英語(yǔ)5年(21-25)真題分類匯編-中考語(yǔ)篇題型 閱讀理解句子還原7選5
評(píng)論
0/150
提交評(píng)論