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