自由自在 閑話少敘...
運算符優先級(從高到低列出)
| 運算符 | 描述 |
| . [] () | 字段訪問、數組下標、函數調用以及表達式分組 |
| ++ -- - ~ ! 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); |
