国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

淺談JS運算符&&和|| 及其優先級

2019-11-20 09:16:09
字體:
來源:轉載
供稿:網友

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

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

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

&& (邏輯與)

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

1 var a = 1 && 2 && 3;//3 

2 var b = 0 && 1 && 2;//0 

3 var c = 1 && 0  && 2;//0 

4 alert(a),alert(b),alert(c);

嘿嘿,寫法很奇怪,運行的結果是3,0,0。一般我們在if語句中經常用到。“&&” (邏輯與) 運算和“||”運算真好相反,“&&” 運算遇到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代碼,翻譯一下:

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

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

||(邏輯或)

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

1 var a = 0 || 1 || 2;//1 

2 var b = 1 || 0 || 3;//1 

3 alert(a),alert(b);

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

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

&& (邏輯與) 優先級高于||(邏輯或)

return a && b || c ,

根據a來判斷返回值,a 是 false 則肯定返回 c;如果 b , c 都是 true ,那么我們就可以根據 a 來決定b 還是 c ,如果 a 是 false 則返回 c,如果a是true 則返回 b。

return a || b && c

根據優先級相當于先算 b && c ,然后和a 相 或;如果a是true,則返回a,不論是b或c,如果a是false,則如果b是false,返回b,如果b是true,返回c; 

1 var a = 3  &&  0 || 2;  //2 

3 var b = 3 || 0  &&  2; // 3 

5 var c= 0 || 2 && 3; // 3 

6 alert(a),alert(b),alert(c);

另附:JS運算符優先級(從高到低列出)

運算符 描述
. [] () 字段訪問、數組下標、函數調用以及表達式分組
++ -- - ~ ! delete new typeof void 一元運算符、返回數據類型、對象創建、未定義值
* / % 乘法、除法、取模
+ - + 加法、減法、字符串連接
<< >> >>> 移位
< <= > >= instanceof 小于、小于等于、大于、大于等于、instanceof
== != === !== 等于、不等于、嚴格相等、非嚴格相等
& 按位與
^ 按位異或
| 按位或
&& 邏輯與
|| 邏輯或
?: 條件
= oP= 賦值、運算賦值
, 多重求值

以上這篇淺談JS運算符&&和|| 及其優先級就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴林右旗| 大方县| 杂多县| 廉江市| 巴楚县| 米脂县| 赫章县| 高陵县| 都匀市| 宝坻区| 新安县| 蕲春县| 乐山市| 阳新县| 绩溪县| 海伦市| 邯郸市| 盈江县| 德保县| 玉环县| 伊吾县| 驻马店市| 和政县| 武穴市| 乌苏市| 昭平县| 衡阳县| 洪湖市| 水城县| 镇宁| 佛学| 邢台市| 扎鲁特旗| 新乐市| 仁怀市| 镇赉县| 宜君县| 家居| 宁阳县| 大埔区| 任丘市|