perators ( [ ` &&= ` ](/en-
US/docs/Web/JavaScript/Reference/Operators/Logical_AND_assignment) , [ ` ||= `
](/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR_assignment) , [ `
??= ` ](/en-
US/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_assignment) )
are short-circuited as well. They are short-circuited in a way that the
assignment does not happen at all.

##  Table

The following table lists operators in order from highest precedence (18) to
lowest precedence (1).

Several general notes about the table:

  1. Not all syntax included here are "operators" in the strict sense. For example, spread ` ... ` and arrow ` => ` are typically not regarded as operators. However, we still included them to show how tightly they bind compared to other operators/expressions. 
  2. Some operators have certain operands that require expressions narrower than those produced by higher-precedence operators. For example, the right-hand side of member access ` . ` (precedence 17) must be an identifier instead of a grouped expression. The left-hand side of arrow ` => ` (precedence 2) must be an arguments list or a single identifier instead of some random expression. 
  3. Some operators have certain operands that accept expressions wider than those produced by higher-precedence operators. For example, the bracket-enclosed expression of bracket notation ` [ â¦ ] ` (precedence 17) can be any expression, even comma (precedence 1) joined ones. These operators act as if that operand is "automatically grouped". In this case we will omit the associativity. 

Precedence  |  Associativity  |  Individual operators  |  Notes   
---|---|---|---  
18: grouping  |  n/a  |  [ Grouping ](/en-US/docs/Web/JavaScript/Reference/Operators/Grouping)   
` (x) ` |  [1]   
17: access and call  |  left-to-right  |  [ Member access ](/en-US/docs/Web/JavaScript/Reference/Operators/Property_accessors#dot_notation)   
` x.y ` |  [2]   
[ Optional chaining ](/en-
US/docs/Web/JavaScript/Reference/Operators/Optional_chaining)  
` x?.y `  
n/a  |  [ Computed member access ](/en-US/docs/Web/JavaScript/Reference/Operators/Property_accessors#bracket_notation)   
` x[y] ` |  [3]   
[ ` new ` ](/en-US/docs/Web/JavaScript/Reference/Operators/new) with argument
list  
` new x(y) ` |  [4]   
[ Function call ](/en-US/docs/Web/JavaScript/Guide/Functions)  
` x(y) `  
[ ` import(x) ` ](/en-US/docs/Web/JavaScript/Reference/Operators/import)  
16: new  |  n/a  |  [ ` new ` ](/en-US/docs/Web/JavaScript/Reference/Operators/new) without argument list   
` new x `  
15: postfix operators  |  n/a  |  [ Postfix increment ](/en-US/docs/Web/JavaScript/Reference/Operators/Increment)   
` x++ ` |  [5]   
[ Postfix decrement ](/en-
US/docs/Web/JavaScript/Reference/Operators/Decrement)  
` x-- `  
14: prefix operators  |  n/a  |  [ Prefix increment ](/en-US/docs/Web/JavaScript/Reference/Operators/Increment)   
` ++x ` |  [6]   
[ Prefix decrement ](/en-US/docs/Web/JavaScript/Reference/Operators/Decrement)  
` --x `  
[ Logical NOT ](/en-US/docs/Web/JavaScript/Reference/Operators/Logical_NOT)  
` !x `  
[ Bitwise NOT ](/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_NOT)  
` ~x `  
[ Unary plus ](/en-US/docs/Web/JavaScript/Reference/Operators/Unary_plus)  
` +x `  
[ Unary negation ](/en-
US/docs/Web/JavaScript/Reference/Operators/Unary_negation)  
` -x `  
[ ` typeof x ` ](/en-US/docs/Web/JavaScript/Reference/Operators/typeof)  
[ ` void x ` ](/en-US/docs/Web/JavaScript/Reference/Operators/void)  
[ ` delete x ` ](/en-US/docs/Web/JavaScript/Reference/Operators/delete) |  [7]   
[ ` await x ` ](/en-US/docs/Web/JavaScript/Reference/Operators/await)  
13: exponentiation  |  right-to-left  |  [ Exponentiation ](/en-US/docs/Web/JavaScript/Reference/Operators/Exponentiation)   
` x ** y ` |  [8]   
12: multiplicative operators  |  left-to-right  |  [ Multiplication ](/en-US/docs/Web/JavaScript/Reference/Operators/Multiplication)   
` x * y `  
[ Division ](/en-US/docs/Web/JavaScript/