JavaScript Operator Precedence - Operator Precedence in JavaScript
JavaScript Operator Precedence
- The order in which operations are carried out in an arithmetic expression is known as operator precedence.
- Priority is given to division (/) and multiplication (*) above addition (+) and subtraction (-).
Operator Precedence Values
| Operator | Description | Example |
|---|---|---|
| ( ) | Expression Grouping | (100 + 50) * 3 |
| . | Member Of | person.name |
| [] | Member Of | person["name"] |
| ?. | Optional Chaining ES2020 | x ?. y |
| ( ) | Function Call | myFunction() |
| new | New with Arguments | new Date("June 5,2022") |
| new | New without Arguments | new Date() |
Increment Operators
| Operator | Description |
|---|---|
| ++ | Postfix Increment |
| -- | Postfix Decrement |
| ++ | Prefix Decrement |
| -- | Prefix Increment |
NOT Operators
| Operator | Description | Example |
|---|---|---|
| ! | Logical NOT | !(x==y) |
| ~ | Bitwise NOT | ~x |
Unary Operators
| Operator | Description | Example |
|---|---|---|
| + | Unary Plus | +X |
| - | Unary Minus | -X |
| typeof | Data Type | typeof X |
| void | Evaluate Void | void(0) |
| delete | Property Delete | delete myCar.color |
Arithmetic Operators
| Operator | Description | Example |
|---|---|---|
| ** | Exponentiation ES2016 | 10 ** 2 |
| * | Multiplication | 10 * 5 |
| / | Division | 10 / 5 |
| % | Division Remainder | 10 % 5 |
| + | Addition | 10 + 5 |
| - | Subtraction | 10 - 5 |
| + | Concatenation | "John" + "Doe" |
Shift Operators
| Operator | Description | Example |
|---|---|---|
| << | Shift Left | x << 2 |
| >> | Shift Right (signed) | x >> 2 |
| >>> | Shift Right (unsigned) | x >>> 2 |
Relational Operators
| Operator | Description | Example |
|---|---|---|
| in | Property in Object | "PI" in Math |
| instanceof | Instance of Object | x instanceof Array |
Comparison Operators
| Operator | Description | |
|---|---|---|
| < | Less than | x < y |
| <= | Less than or equal | x <= y |
| > | Greater than | x > y |
| >= | Greater than or equal | x >= Array |
| == | Equal | x == y |
| === | Strict equal | x === y |
| != | Unequal | x != y |
| !== | Strict unequal | x !== y |
Bitwise Operators
| Operator | Description | Example |
|---|---|---|
| & | Bitwise AND | x & y |
| ^ | Bitwise XOR | x ^ y |
| | | Bitwise OR | x | y |
Logical Operators
| Operator | Description | Example |
|---|---|---|
| && | Logical AND | x && y |
| || | Logical OR | x || y |
| ?? | Nullish Coalescing ES2020 | x ?? y |
Assignment Operators
| Operator | Description | Example |
|---|---|---|
| = | Simple Assignment | x = y |
| : | Colon Assignment | x: 5 |
| += | Addition Assignment | x += y |
| -= | Subtraction Assignment | x -= y |
| *= | Multiplication Assignment | x *= y |
| **= | Exponentiation Assignment | x **= y |
| /= | Division Assignment | x /= y |
| %= | Remainder Assignment | x %= y |
| <<= | Left Shift Assignment | x <<= y |
| >>= | Right Shift Assignment | x >>= y |
| >>>= | Unsigned Right Assignment | x >>>= y |
| &= | Bitwise AND Assignment | x &= y |
| |= | Bitwise OR Assignment | x |= y |
| ^= | Bitwise XOR Assignment | x ^= y |
| &&= | Logical AND Assignment | x &&= y |
| ||= | Logical OR Assignment | x ||= y |
| => | Arrow | x => y |
| yield | Pause / Resume | yield x |
| yield* | Delegate | yield* x |
| ... | Spread | ... x |
| , | Comma | x , y |