JavaScript中運算子的優先順序
阿新 • • 發佈:2018-12-29
運算子優先順序
JavaScript中的運算子優先順序是一套規則。該規則在計算表示式時控制運算子執行的順序。具有較高優先順序的運算子先於較低優先順序的運算子執行。例如,乘法的執行先於加法。
下表按從最高到最低的優先順序列出JavaScript運算子。具有相同優先順序的運算子按從左至右的順序求值。
圓括號可用來改變運算子優先順序所決定的求值順序。這意味著圓括號中的表示式應在其用於表示式的其餘部分之前全部被求值。
首先對圓括號內的表示式求值。圓括號中有兩個加法運算子。因為兩個加法運算子具有相同的優先順序,從左到右求值。先將 96 和 3 相加,然後將其和與 45 相加,得到的結果為 144。
然後是乘法運算。78 乘以 144,得到結果為 11232。
A最後是賦值運算。將 11232 賦給 z。
JavaScript中的運算子優先順序是一套規則。該規則在計算表示式時控制運算子執行的順序。具有較高優先順序的運算子先於較低優先順序的運算子執行。例如,乘法的執行先於加法。
下表按從最高到最低的優先順序列出JavaScript運算子。具有相同優先順序的運算子按從左至右的順序求值。
運算子 | 描述 |
. [] () | 欄位訪問、陣列下標、函式呼叫以及表示式分組 |
++ -- - ~ ! delete new typeof void | 一元運算子、返回資料型別、物件建立、未定義值 |
* / % | 乘法、除法、取模 |
+ - + |
加法、減法、字串連線 |
<< >> >>> | 移位 |
< <= > >= instanceof | 小於、小於等於、大於、大於等於、instanceof |
== != === !== | 等於、不等於、嚴格相等、非嚴格相等 |
& | 按位與 |
^ | 按位異或 |
| | 按位或 |
&& | 邏輯與 |
|| | 邏輯或 |
?: | 條件 |
= oP= | 賦值、運算賦值 |
, | 多重求值 |
圓括號可用來改變運算子優先順序所決定的求值順序。這意味著圓括號中的表示式應在其用於表示式的其餘部分之前全部被求值。
z = 78 * (96 + 3 + 45)在該表示式中有五個運算子: =, *, (), +, 以及另一個 +。根據運算子優先順序的規則,它們將按下面的順序求值: (), +, +, *, =。
首先對圓括號內的表示式求值。圓括號中有兩個加法運算子。因為兩個加法運算子具有相同的優先順序,從左到右求值。先將 96 和 3 相加,然後將其和與 45 相加,得到的結果為 144。
然後是乘法運算。78 乘以 144,得到結果為 11232。
A最後是賦值運算。將 11232 賦給 z。