JavaScript Operator Precedence

Operator precedence determines the order in which operators are evaluated in expressions. JavaScript follows a set of rules that define which operators are executed first. Here’s an overview:

Overview

In JavaScript, operators are categorized into different levels of precedence, which affects how expressions are parsed and evaluated. For example, multiplication and division have higher precedence than addition and subtraction.

Precedence Table

Here’s a simplified table of JavaScript operator precedence from highest to lowest:

Precedence Level Operator
1 Parentheses `()`, Function Calls
2 Exponentiation `**`, Unary `+`, `-`, `++`, `--`, `!`, `~`, `typeof`, `void`, `delete`
3 Multiplication `*`, Division `/`, Modulus `%`
4 Addition `+`, Subtraction `-`
5 Comparison `==`, `===`, `!=`, `!==`, `<`, `<=`, `>`, `>=`
6 Logical AND `&&`
7 Logical OR `||`
8 Assignment `=`, `+=`, `-=`, `*=`, `/=`, `%=`
9 Comma `,`

Examples

Here are some examples to illustrate operator precedence:

  • Expression: `3 + 5 * 2`
    
    console.log(3 + 5 * 2); // 13
    // Multiplication has higher precedence than addition
    
                            
  • Expression: `(3 + 5) * 2`
    
    console.log((3 + 5) * 2); // 16
    // Parentheses change the precedence
    
                            
  • Expression: `true || false && false`
    
    console.log(true || false && false); // true
    // Logical AND has higher precedence than logical OR