JavaScript Operator Precedence & Associativity Chart
Below is a Operator Precedence and Associativity Chart for the JavaScript
Programming Language.
The information in this chart has been derived directly from the "ECMAScript
Language Specification"
Precedence Level |
Associates |
Operator |
Operand Types |
Operation Performed |
1 |
Left |
[] |
MemberExp Expression |
|
|
Left |
. |
MemberExp Identifier |
|
|
Right |
new |
MemberExp Arguments |
|
2 |
Left |
( ) |
CallExpression Arguments |
Function Call |
|
Left |
[] |
CallExpression Expression |
|
|
Left |
. |
CallExpression Identifier |
|
3 |
n/a |
++ |
LeftHandSideExp |
PostfixIncrement |
|
n/a |
-- |
LeftHandSideExp |
PostfixDecrement |
4 |
Right |
delete |
UnaryExp |
Call Delete Method |
|
Right |
void |
UnaryExp |
Eval and Return undefined |
|
Right |
typeof |
UnaryExp |
Return Type of an Object |
|
Right |
++ |
UnaryExp |
PrefixIncrement |
|
Right |
-- |
UnaryExp |
PrefixDecrement |
|
Right |
+ |
UnaryExp |
UnaryPlus |
|
Right |
- |
UnaryExp |
UnaryMinus |
|
Right |
~ |
UnaryExp |
BitwiseNot |
|
Right |
! |
UnaryExp |
LogicalNot |
5 |
Left |
* |
MultExp UnaryExp |
Multiplication |
|
Left |
/ |
MultExp UnaryExp |
Division |
|
Left |
% |
MultExp UnaryExp |
Remainder |
6 |
Left |
+ |
AddExp MultExp |
Addition |
|
Left |
- |
AddExp MultExp |
Subtraction |
7 |
Left |
<< |
ShiftExp AddExp |
BitwiseLeftShift |
|
Left |
>> |
ShiftExp AddExp |
SignedRightShift |
|
Left |
>>> |
ShiftExp AddExp |
UnsignedRightShift |
8 |
Left |
< |
RelExp ShiftExp |
LessThanComparison |
|
Left |
> |
RelExp ShiftExp |
GreaterThanComparison |
|
Left |
<= |
RelExp ShiftExp |
LessThanOrEqualComparison |
|
Left |
>= |
RelExp ShiftExp |
GreaterThanOrEqualComparison |
|
Left |
instanceof |
RelExp ShiftExp |
Call HasInstance Method |
|
Left |
in |
RelExp ShiftExp |
Call HasProperty Method |
9 |
Left |
== |
EqualExp RelExp |
IsEqual |
|
Left |
!= |
EqualExp RelExp |
IsNotEqual |
|
Left |
=== |
EqualExp RelExp |
IsStrictlyEqual |
|
Left |
!== |
EqualExp RelExp |
IsStrictlyNotEqual |
10 |
Left |
& |
BitwiseAndExp EqualExp |
BitwiseAnd |
11 |
Left |
^ |
BitwiseXorExp EqualExp |
Bitwise Xor |
12 |
Left |
| |
BitwiseOrExp EqualExp |
BitwiseOr |
13 |
Left |
&& |
LogicalAndExp BitwiseOrExp |
LogicalAnd |
14 |
Left |
|| |
LogicalOrExp LogicalAndExp |
LogicalOr |
15 |
Right |
? : |
LogicalOrExp AssignExp AssignExp |
ConditionalExpression |
16 |
Right |
= |
LeftHandSideExp AssignExp |
AssignmentExpression |
|
Right |
*= |
LeftHandSideExp AssignExp |
AssignmentWithMultiplication |
|
Right |
/= |
LeftHandSideExp AssignExp |
AssignmentWithDivision |
|
Right |
%= |
LeftHandSideExp AssignExp |
AssignmentWithRemainder |
|
Right |
+= |
LeftHandSideExp AssignExp |
AssignmentWithAddition |
|
Right |
-= |
LeftHandSideExp AssignExp |
AssignmentWithSubtraction |
|
Right |
<<= |
LeftHandSideExp AssignExp |
AssignmentWithBitwiseLeftShift |
|
Right |
>>= |
LeftHandSideExp AssignExp |
AssignmentWithSignedRightShift |
|
Right |
>>>= |
LeftHandSideExp AssignExp |
AssignmentWithUnsignedRightShift |
|
Right |
&= |
LeftHandSideExp AssignExp |
AssignmentWithBitwiseAnd |
|
Right |
^= |
LeftHandSideExp AssignExp |
AssignmentWithBitwiseOr |
|
Right |
|= |
LeftHandSideExp AssignExp |
AssignmentWithLogicalNot |
17 |
Left |
, |
Expression AssignExp |
SequentialEvaluation |
|