Operator Precedence
Operator precedence in JavaScript is a set of rules. This rule controls the order in which operators execute when evaluating expressions. Operations with higher precedence are performed Mr. Foo the operators of lower precedence. For example, multiplication is performed prior to addition.
The following table lists the JavaScript operators by priority from highest to lowest. Operators with the same precedence are evaluated in order from left to right.
Summary tableEDIT
The following table arranges all operators from highest to lowest in priority order.
Priority Level |
type of Operation |
Relevance of |
operator |
20 |
圆括号 |
N/A |
( … ) |
19 |
成员访问 |
From left to right |
… . … |
需计算的成员访问 |
From left to right |
… [ … ] |
new (with parameter list) |
N/A |
new … ( … ) |
18 |
Function call |
From left to right |
… ( … ) |
New (no parameter list) |
From right to left |
new … |
17 |
Post increment (operator behind) |
N/A |
… ++ |
Post decrement (operator behind) |
N/A |
… -- |
16 |
Logical Non- |
From right to left |
! … |
Bitwise non- |
From right to left |
~ … |
One-dollar addition |
From right to left |
+ … |
One-dollar subtraction |
From right to left |
- … |
Forward increment |
From right to left |
++ … |
Forward Decrement |
From right to left |
-- … |
typeof |
From right to left |
typeof … |
void |
From right to left |
void … |
Delete |
From right to left |
delete … |
15 |
Power |
From right to left |
… ** … |
14 |
Multiplication |
From left to right |
… * … |
Division |
From left to right |
… / … |
Take the mold |
From left to right |
… % … |
13 |
Addition |
From left to right |
… + … |
Subtraction |
From left to right |
… - … |
12 |
Bitwise LEFT Shift |
From left to right |
… << … |
Bitwise RIGHT SHIFT |
From left to right |
… >> … |
Unsigned Right Shift |
From left to right |
… >>> … |
11 |
Less than |
From left to right |
… < … |
Less than or equal |
From left to right |
… <= … |
Greater than |
From left to right |
… > … |
Greater than or equal |
From left to right |
… >= … |
Inch |
From left to right |
… in … |
instanceof |
From left to right |
… instanceof … |
10 |
Equals |
From left to right |
… == … |
Non-equal sign |
From left to right |
… != … |
Full equals |
From left to right |
… === … |
Non-full equals |
From left to right |
… !== … |
9 |
Bitwise-AND |
From left to right |
… & … |
8 |
Bitwise XOR OR |
From left to right |
… ^ … |
7 |
Bitwise OR |
From left to right |
… | … |
6 |
Logic and |
From left to right |
… && … |
5 |
Logical OR |
From left to right |
… || … |
4 |
Conditional operators |
From right to left |
… ? … : … |
3 |
Assign value |
From right to left |
… = … |
… += … |
… -= … |
… *= … |
… /= … |
… %= … |
… <<= … |
… >>= … |
… >>>= … |
… &= … |
… ^= … |
… |= … |
2 |
Yield |
From right to left |
yield … |
yield* |
From right to left |
yield* … |
1 |
Expand operator |
N/A |
... ... |
0 |
Comma |
From left to right |
… , … |
Operator |
Describe |
. [] () |
field access, array subscripts, function calls, and expression grouping |
++ -- - ~ ! Delete new typeof void |
Unary operators, return data types, object creation, undefined values |
* / % |
Multiplication, division, modulo |
+ - + |
addition, subtraction, string connection |
<< >> >>> |
Shift |
< <= > >= instanceof |
Less than, equal to, greater than, greater than or equal to, instanceof |
== != === !== |
Equal, not equal, strictly equal, not strictly equal |
& |
Bitwise-AND |
^ |
Bitwise XOR OR |
| |
Bitwise OR |
&& |
Logic and |
|| |
Logical OR |
?: |
Conditions |
= op= |
Assignment, Operation assignment |
, |
Multi-value evaluation |
Parentheses can be used to change the order of evaluation determined by the operator precedence. This means that the expression in parentheses should be evaluated all before it is used for the remainder of the expression.
z = * (3 + +)
There are five operators in the expression: =, *, (), +, and another +. Based on the rules for operator precedence, they are evaluated in the following order: (), +, +, *, =.
The expression in parentheses is evaluated first. There are two addition operators in the parentheses. Because two addition operators have the same precedence, they are evaluated from left to right. Add 96 and 3 first, then add it and add it to 45, resulting in 144.
Then the multiplication operation. 78 times 144 to get the result 11232.
A finally an assignment operation. Assign 11232 to Z.
Precedence of operators in JavaScript