運算符優先級 以及 && (邏輯與) 和||(邏輯或)的優先級:
阿新 • • 發佈:2018-06-30
對象創建 content ins 條件 邏輯或 style -a ID class
運算符優先級(從高到低列出)
運算符 | 描述 |
. [] () | 字段訪問、數組下標、函數調用以及表達式分組 |
++ -- - ~ ! delete new typeof void | 一元運算符、返回數據類型、對象創建、未定義值 |
* / % | 乘法、除法、取模 |
+ - + | 加法、減法、字符串連接 |
<< >> >>> | 移位 |
< <= > >= instanceof | 小於、小於等於、大於、大於等於、instanceof |
== != === !== | 等於、不等於、嚴格相等、非嚴格相等 |
& | 按位與 |
^ | 按位異或 |
| | 按位或 |
&& | 邏輯與 |
|| | 邏輯或 |
?: | 條件 |
= oP= | 賦值、運算賦值 |
, | 多重求值 |
主要 說明一下&& (邏輯與) 和||(邏輯或)混合使用的時候要註意他們的優先級:(耐心一點點。5分鐘搞定)
&& (邏輯與) 優先級高於||(邏輯或)
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;
ex:
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); |
運算符優先級 以及 && (邏輯與) 和||(邏輯或)的優先級: