溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JavaScript邏輯運算符及優(yōu)先級的介紹

發(fā)布時間:2021-09-17 11:03:09 來源:億速云 閱讀:115 作者:chen 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“JavaScript邏輯運算符及優(yōu)先級的介紹”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“JavaScript邏輯運算符及優(yōu)先級的介紹”吧!

今天看了一段YUI compressor壓縮的js代碼:

1userNum
&& (ind += index,ind >= userNum && (ind -= userNum),ind < 0 && (ind === -2 && (ind = -1),ind += userNum),selLi.removeClass(
"on"),$(selLi[ind]).addClass("on"));

直接瘋掉了,估計一下子沒幾個人能看懂。那么就把他“翻譯”一下。

&& (邏輯與)

這里主要是一個“&&”運算,首先要搞懂這個,看一個簡單的例子:

1var a
= 1 && 2 && 3;
//3
2var b
= 0 && 1 && 2;
//0
3var c
= 1 && 0  && 2;
//0
4alert(a),alert(b),alert(c);

嘿嘿,寫法很奇怪,運行的結(jié)果是3,0,0。一般我們在if語句中經(jīng)常用到。“&&” (邏輯與) 運算和“||”運算真好相反,“&&” 運算遇到false就返回。
例如: a && b ,如果 a 為true,直接返回b,而不管b為true或者false 。如果 a 為false 那么直接返回a,上面例子中第一個var a = 1 && 2 && 3;因為1 && 2,1為真,返回2;2&&3, 2為真,返回3 。
搞懂了“&&” 運算,再來看最上的面的YUI compressor壓縮的js代碼,翻譯一下:

01if(userNum){
02ind
+= index;
03if (ind
>= userNum) {
04ind
-= userNum
05}
06if(ind
< 0){
07if(ind
=== -2){
08ind
= -1;
09}
10ind
+= userNum;
11}
12selLi.removeClass("on");
13$(selLi[ind]).addClass("on");
14}

說來慚愧,年紀(jì)大了,足足“翻譯”了半個小時,還是在同事的幫助下才“翻譯”正確。

||(邏輯或)

再來看看“||”(邏輯或)運算,看例子:

1var a
= 0 || 1 || 2;
//1
2var b
= 1 || 0 || 3;
//1
3alert(a),alert(b);

“||”運算遇到true就返回。例如:a || b ,如果 a 為false,直接返回b,而不管b為true或者false 。如果 a 為true,直接返回a,而不會繼續(xù)往下執(zhí)行。

&& (邏輯與) 和||(邏輯或)混合使用的時候要注意他們的優(yōu)先級:

&& (邏輯與) 優(yōu)先級高于||(邏輯或)
return a && b || c ,
根據(jù)a來判斷返回值,a 是 false 則肯定返回 c;如果 b , c 都是 true ,那么我們就可以根據(jù) a 來決定b 還是 c ,如果 a 是 false 則返回 c,如果a是true 則返回 b。
return a || b && c
根據(jù)優(yōu)先級相當(dāng)于先算 b && c ,然后和a 相 或;如果a是true,則返回a,不論是b或c,如果a是false,則如果b是false,返回b,如果b是true,返回c;

1var a
= 3  &&  0 || 2;  
//2
2 
3var b
= 3 || 0  &&  2; 
//
3
4 
5var c=
0 || 2 && 3; 
//
3
6alert(a),alert(b),alert(c);

到此,相信大家對“JavaScript邏輯運算符及優(yōu)先級的介紹”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI