《HTML教程》-4.5教學(xué)材料_第1頁
《HTML教程》-4.5教學(xué)材料_第2頁
《HTML教程》-4.5教學(xué)材料_第3頁
《HTML教程》-4.5教學(xué)材料_第4頁
《HTML教程》-4.5教學(xué)材料_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

JS中的運(yùn)算符有優(yōu)先級(jí)和結(jié)合性的概念。所謂的優(yōu)先級(jí)是指如果同時(shí)出現(xiàn)多個(gè)運(yùn)算符時(shí),沒有括號(hào)的情況下先執(zhí)行哪一個(gè)。優(yōu)先級(jí)高的先執(zhí)行,優(yōu)先級(jí)低的后執(zhí)行。如,a+b*c,因?yàn)?乘號(hào)的優(yōu)先級(jí)高,所以先算b*c,再計(jì)算a加bc的積。結(jié)合性是指相同優(yōu)先級(jí)的運(yùn)算符在同一個(gè)表達(dá)式中,且沒有括號(hào)的時(shí)候,運(yùn)算符和操作數(shù)的結(jié)合方式,通常有從左到右結(jié)合(稱為左結(jié)合性)和從右到左結(jié)合(稱為右結(jié)合性)兩種方式。如a+b+c,因?yàn)?(加號(hào))是左結(jié)合的,所以等價(jià)于(a+b)+c。JavaScript中的運(yùn)行符如表4-3[18][19]所示。注:優(yōu)先級(jí)從上到下依次降低,即1最高,15最低。如果在實(shí)際工作中,不能確定運(yùn)算符的優(yōu)先級(jí)時(shí),用括號(hào)改變運(yùn)算順序是不錯(cuò)的選擇。從表4-13可以看出運(yùn)算符的基本用法,現(xiàn)在對(duì)表中無法說明的內(nèi)容再做一下說明。1、優(yōu)先級(jí)與結(jié)合性雖然JS規(guī)定了運(yùn)算符的優(yōu)先級(jí),但要確定記住每個(gè)運(yùn)算符的優(yōu)先級(jí)恐怕不是那么容易。如果在編程時(shí)不能確定要使用的運(yùn)算符的優(yōu)先級(jí)該怎么辦呢?當(dāng)然可以查閱JS手冊(cè)或者參考書,但還有一個(gè)更容易的辦法,那就是用圓括號(hào)改變運(yùn)算次序。把需要先計(jì)算的表達(dá)式放在圓括號(hào)里,圓括號(hào)的表達(dá)式優(yōu)先級(jí)是最高的,所以最先進(jìn)行求值計(jì)算。如3*6+5;//233*(6+5);//33關(guān)于優(yōu)先級(jí)和結(jié)合性再舉一個(gè)復(fù)雜點(diǎn)的例子。vara=1;m=++a+++a+++a;那么m的值是多少呢?這就涉及優(yōu)先級(jí)和結(jié)合性的問題了。式子中有3個(gè)運(yùn)算符,分別是=,++和+,從表4-13中可以看到++優(yōu)先級(jí)高于+運(yùn)算符,而+運(yùn)算符高于=運(yùn)算符,所以先計(jì)算++,再計(jì)算+,最后進(jìn)行賦值運(yùn)算。所以上面的第二個(gè)式子等價(jià)于m=(++a)+(++a)+(++a);因?yàn)閍的值為1,所以第一個(gè)++a的值為2,第2個(gè)++a的值為3,第3個(gè)++a的值為4,所以m=2+3+4=9。2、其他說明(1)邏輯運(yùn)算符邏輯運(yùn)算符對(duì)布爾型的值進(jìn)行操作,返回布爾型的值。邏輯運(yùn)算的真值表如下:true&&true=true true&&false=falsefalse&&true=false false&&false=false可以看出,邏輯與運(yùn)算只有兩個(gè)操作數(shù)同時(shí)為true時(shí),結(jié)果才是true。邏輯或的真值表如下:true||true=true true||false=truefalse||true=true false||false=false可以看出,邏輯或運(yùn)算只要有一個(gè)操作數(shù)為true,則結(jié)果就為true。邏輯非的真值表如下:!true=false !false=true邏輯非運(yùn)算為單目運(yùn)算符,只有一個(gè)操作數(shù),進(jìn)行的操作是對(duì)操作數(shù)取反。值得注意的是,邏輯運(yùn)算會(huì)出現(xiàn)“短路”現(xiàn)象。所謂短路是指,只對(duì)參與運(yùn)算的第一個(gè)表達(dá)式求值,而忽略第二個(gè)作為操作數(shù)的表達(dá)式,這種現(xiàn)象稱之為短路。如5>6&&7>86>5||8>7對(duì)于第一個(gè)表達(dá)式,因?yàn)?>6的結(jié)果為false,所以整個(gè)表達(dá)式的值即為false,對(duì)第二個(gè)表達(dá)式7>8求值(false)已經(jīng)沒有必要,所以JS解釋器不會(huì)對(duì)7>8這一表達(dá)式求值,出現(xiàn)短路現(xiàn)象。同理,6>5求值為真,所以第二個(gè)表達(dá)式的值則為true,沒必要對(duì)8>7再進(jìn)行求值,就可以確定二個(gè)邏輯表達(dá)式為真,也出現(xiàn)短路現(xiàn)象。參與邏輯運(yùn)算的操作數(shù)不一定非是true和false,只要是運(yùn)算結(jié)果是布爾型值的表達(dá)式,或者運(yùn)算結(jié)果可以轉(zhuǎn)換成布爾型值的表達(dá)式都可以。如上式中的5>6等,下面再舉一個(gè)操作數(shù)為可以轉(zhuǎn)換成布爾型的例子,如下面的代碼所示。vara=3,b=4;if(1||a>b){

out("無論a和b是什么值都會(huì)執(zhí)行。");}else{

out("無論a和b是什么值都不會(huì)執(zhí)行。");}上面的if~else為分支結(jié)構(gòu)(見4.6.2節(jié)),其中條件1||a>b中的第一個(gè)表達(dá)式1是一個(gè)數(shù)字,在這里會(huì)被自動(dòng)轉(zhuǎn)換成布爾型的true,也就相當(dāng)于true||a>b,所以無論a和b的值是什么,總會(huì)執(zhí)行if中的語句(見4.6.2節(jié)),即輸出"無論a和b是什么值都會(huì)執(zhí)行。(2)位運(yùn)算符

位運(yùn)算符指的是邏輯位運(yùn)算按位與&、按位|、按位異或^和按位非~,和移位運(yùn)算左移<<、右移>>和無符號(hào)右移。位運(yùn)算的操作數(shù)是整數(shù)或者可以自動(dòng)轉(zhuǎn)換成整數(shù)的值。下面給出邏輯位運(yùn)算的真值表。按位與(簡(jiǎn)記為有一個(gè)為0即為0)0&0=0 0&1=01&0=0 1&1=1按位或(簡(jiǎn)記為有一個(gè)為1即為1。)0|0=0 0|1=11|0=1 1|1=1按位非(或按位取反)~0=1 ~1=0按位異或(簡(jiǎn)記為異則為1,同則為0)0^0=1 0^1=11^0=1 1^1=0移位運(yùn)算是指將第一個(gè)操作數(shù)(32位的整數(shù))的二進(jìn)制表示向左或向右移動(dòng)第二個(gè)操作數(shù)的位數(shù),移位結(jié)果也是32位的整數(shù)(這里需要注意JavaScript是以64浮點(diǎn)數(shù)表示數(shù)值的,但移位操作非常特別,主要是那個(gè)年代沒有64位的機(jī)器^_^?。?。如8>>1即表示將8的二進(jìn)制向右移動(dòng)1位(相當(dāng)于除以2(不能整除則取整),左移1位相當(dāng)于乘以2)。什么是二進(jìn)制數(shù)這里不作解釋,有興趣的讀者可網(wǎng)上搜索或者參閱計(jì)算機(jī)組成原理的相關(guān)書籍。位運(yùn)算在實(shí)際開發(fā)中應(yīng)有的比較少,這里不再展開論述。(3)其他運(yùn)算符

+操作符有3種含義,分別是正號(hào)、加號(hào)和連接符號(hào)。在編程中通常正號(hào)省略,連接兩個(gè)數(shù)字時(shí)為加號(hào);只要其中有一個(gè)操作數(shù)為字符串,則全部操作數(shù)轉(zhuǎn)換為字符串(轉(zhuǎn)換規(guī)則見表4-2),運(yùn)算結(jié)果也為字符串。==和===分別為等于和嚴(yán)格等于。==是判斷兩操作數(shù)“值”是否相等,如果兩操作數(shù)類型不同,則先進(jìn)行類型轉(zhuǎn)換然后再比較二者的值是否相等。而對(duì)于===則先判斷二者類型是否相等,如果不等則返回false不再進(jìn)行比較。+=,-=,*=等復(fù)合賦值運(yùn)算符,左右兩個(gè)操作數(shù)先執(zhí)行指定的+,-和*的運(yùn)算再進(jìn)行賦值操作,且左操作數(shù)必須為變量。比如vara=1;a+=1;//相當(dāng)于a=a+1,即執(zhí)行a+1操作再把a(bǔ)+1的結(jié)果賦值給a。其他復(fù)合賦值運(yùn)算符也是如此,只是執(zhí)行的運(yùn)算不同,不再贅述。++和--操作符。這兩個(gè)操作符即可以作為前綴操作符(即出現(xiàn)在操作數(shù)之前),也可以作為后綴操作符(出現(xiàn)在操作數(shù)之后),但含義不同。作為前綴操作符時(shí),先對(duì)操作數(shù)進(jìn)行自加/自減操作,再使用操作數(shù),而對(duì)于后綴操作符時(shí),則先使用操作數(shù)的值,再進(jìn)行自加/自減操作。如vari=5;//a=6,即執(zhí)行i+1之后(先用,此時(shí)i為5)再進(jìn)行i自加操作(此時(shí)i變?yōu)?)vara=i+++1;而//a=7,即先進(jìn)行i自加操作使i變?yōu)?,再進(jìn)行加1操作vara=++i+1;4.5.2表達(dá)式和語句在JavaScript中由字面量、變量和操作符構(gòu)成的式子,解釋器可以對(duì)表達(dá)式進(jìn)行求值。例如,3+5//字面量數(shù)學(xué)計(jì)算表達(dá)式a+b*c//變量數(shù)學(xué)計(jì)算表達(dá)式a[i]//數(shù)組元素訪問表達(dá)式6>5&&a>b//

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論