1. 程式人生 > >運算符優先級 以及 && (邏輯與) 和||(邏輯或)的優先級:

運算符優先級 以及 && (邏輯與) 和||(邏輯或)的優先級:

對象創建 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);

運算符優先級 以及 && (邏輯與) 和||(邏輯或)的優先級: