## JavaScript operator precedence

JavaScript operator precedence describes the order in which operations are performed when a computer evaluates an expression. Operations with higher priority are performed first, and then operations with lower priority are performed. For example, we often say that multiplication and division are performed first, and then addition and subtraction operations are performed.

Precedence | Operator | Description | Associativity |
---|---|---|---|

1 | `[]` 、`.` 、`()` | Field access, array indexing, function calls, and expression grouping | From left to right |

2 | ++ -- -~!delete new typeof void | Unary operator, return data type, object creation, undefined value | From right to left |

3 | *、/、% | Multiplication, division, remainder | From left to right |

4 | +、- | Addition, subtraction, string concatenation | From left to right |

5 | <<、>>、>>> | Left shift, right shift, unsigned right shift | From left to right |

6 | <, <=, >, >=, instanceof | less than, less than or equal to, greater than, greater than or equal to, whether an instance of a specific class | from left to right |

7 | ==, !=, ===, !== | equal, not equal, all equal, not all equal | from left to right |

8 | & | bitwise AND | from left to right |

9 | ^ | Bitwise XOR | From left to right |

10 | | | Bitwise OR | From left to right |

11 | && | Short-circuit AND (logical AND) | From left to right |

12 | || | Short-circuit OR (logical OR) | From left to right |

13 | ?: | Conditional operator | From right to left |

14 | =、+=、-=、*=、/=、%=、&=、|=、^=、<、<=、>、>=、>>= | Mixed assignment operators | From right to left |

15 | , | Multiple calculations | Calculate by priority, then from right to left |