優(yōu)先級(jí):非與或
創(chuàng)新互聯(lián)是一家專業(yè)提供德陽(yáng)企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、H5頁(yè)面制作、小程序制作等業(yè)務(wù)。10年已為德陽(yáng)眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
例如
if( !a!b || !cd ){
// (a、b為false) 或者 (c為false,d為true )
};
首先要弄清楚isNaN的意思。isNaN是判斷是否為非數(shù)字,意思是如果不是數(shù)字,返回true,例如含有字母時(shí);如果為數(shù)字,返回false。其次,你得邏輯是不對(duì)的,判斷電話號(hào)碼的時(shí)候要求必須是數(shù)字并且長(zhǎng)度大于11,如果不符合以上條件,因該給提示,因此你想實(shí)現(xiàn)的應(yīng)該是非數(shù)字或者長(zhǎng)度小于11都給提示,所以應(yīng)該用||。另外建議用正則表達(dá)式驗(yàn)證這些東西。網(wǎng)上有很多例子,自己可以研究一下寫一個(gè)自己的公共驗(yàn)證JS。
(1)對(duì)于布爾值,只有都為true才返回true;
(2)對(duì)于不是布爾值的情況則:
如果第一個(gè)操作數(shù)是對(duì)象,則返回第二個(gè)數(shù)
? ? ? ? ? ? ????????eg:var str = new Array();?
console.log(str8);//返回值為8
如果第二個(gè)操作數(shù)是對(duì)象,則只有在第一個(gè)操作數(shù)的求值結(jié)果為true的情況下才會(huì)返回該對(duì)象。
如果第兩個(gè)操作數(shù)都是對(duì)象,則返回第二個(gè)數(shù)操作數(shù)。
如果有一個(gè)操作數(shù)是null,則返回null。
? ? ? ? ? ? ????????eg: console.log(8null);//返回結(jié)果為null
如果有一個(gè)操作數(shù)是NaN,則返回第NaN。
如果第一個(gè)操作數(shù)是undefined,則返回undefined。
(1)對(duì)于布爾值,邏輯或是非常簡(jiǎn)單的,只要有一個(gè)true,就返回true;
(2)對(duì)于不是布爾值的情況則:
如果第一個(gè)操作數(shù)是對(duì)象,則返第一個(gè)操作數(shù)
如果第一個(gè)操作數(shù)的求值結(jié)果為false,則返回第二個(gè)操作數(shù)
如果兩個(gè)操作數(shù)都是對(duì)象,則返回第一個(gè)操作數(shù)
如果兩個(gè)操作數(shù)是null,則返回null
如果兩個(gè)操作數(shù)是NaN,則返回NaN
如果兩個(gè)操作數(shù)是undefined,則返回undefined
如果一個(gè)操作數(shù)是一個(gè)對(duì)象,返回false;
如果一個(gè)操作數(shù)是一個(gè)空字符串,返回false;
如果一個(gè)操作數(shù)是一個(gè)非空字符串,返回false
如果一個(gè)操作數(shù)是一個(gè)數(shù)值0,返回true;
如果一個(gè)操作數(shù)是任意的非零字符,返回false;
如果一個(gè)操作數(shù)是null,返回true;
如果一個(gè)操作數(shù)是NaN,返回true;
如果一個(gè)操作數(shù)是undefined,返回true;
注:邏輯與,邏輯非都是從左向右判斷,誰(shuí)的第一個(gè)邏輯判斷為true就顯示誰(shuí),只不過(guò)邏輯非必須兩個(gè)都為true,而且誰(shuí)是第一個(gè)false就顯示誰(shuí)。
在JS“”和“||”是邏輯運(yùn)算符;“”和“|”是位運(yùn)算符。
1、運(yùn)算表達(dá)的不同
只要“||”前面為false,不管“||”后面是true還是false,都返回“||”后面的值。只要“||”前面為true,不管“||”后面是true還是false,都返回“||”前面的值。
JavaScript中的位運(yùn)算符:“|”運(yùn)算方法:兩個(gè)位只要有一個(gè)為1,那么結(jié)果都為1。否則就為0
2、使用方式的不同
只要“”前面是false,無(wú)論“”后面是true還是false,結(jié)果都將返“”前面的值;只要“”前面是true,無(wú)論“”后面是true還是false,結(jié)果都將返“”后面的值;
3、運(yùn)算邏輯的不同
按位與:ab是把a(bǔ)和b都轉(zhuǎn)換成二進(jìn)制數(shù)然后再進(jìn)行與的運(yùn)算;邏輯與:ab就是當(dāng)且僅當(dāng)兩個(gè)操作數(shù)均為true時(shí),其結(jié)果才為true;只要有一個(gè)為零,ab就為零。
擴(kuò)展資料
js中的||的使用:
只有前后都是false的時(shí)候才返回false,否則返回true;
alert(2||1);//2
前面2是true,后面1也是true,結(jié)果是2;
alert('a'||1);//'a'
前面'a'是true,后面1也是true;測(cè)試結(jié)果是'a';
alert(''||1);//1
前面”是false,后面1是true,而返回結(jié)果是1;
alert('a'||0);//'a'
前面'a'是true,而后面0是false,返回結(jié)果是'a';
alert(''||0);//0
前面”是false,后面0同樣是false,返回結(jié)果是0;
alert(0||'');//''
前面0是false,后面”是false,返回結(jié)果是”。
你是要位運(yùn)算還是邏輯運(yùn)算。
按位與?
|???按位或?
^???異或???
邏輯與?
||??邏輯或