mozilla
Your Search Results

    Operator precedence

    Operator precedence determines the order in which operators are evaluated. Operators with higher precedence are evaluated first.

    A common example:

    3 + 4 * 5 // returns 23
    

    The multiplication operator ("*") has higher precedence than the addition operator ("+") and thus will be evaluated first.

    Associativity

    Associativity determines the order in which operators of the same precedence are processed. For example, consider an expression:

    a OP b OP c
    

    Left-associativity (left-to-right) means that it is processed as (a OP b) OP c, while right-associativity (right-to-left) means it is interpreted as a OP (b OP c). Assignment operators are right-associative, so you can write:

    a = b = 5;
    

    with the expected result that a and b get the value 5. This is because the assignment operator returns the value that it assigned. First, b is set to 5. Then the a is set to the value of b.

    Table

    The following table is ordered from highest (19) to lowest (0) precedence.

    Precedence Operator type Associativity Individual operators
    19 Grouping n/a ( … )
    18 Member Access left-to-right … . …
    Computed Member Access left-to-right … [ … ]
    new (with argument list) n/a new … ( … )
    17 Function Call left-to-right … ( … )
    new (without argument list) right-to-left new …
    16 Postfix Increment n/a … ++
    Postfix Decrement n/a … --
    15 Logical NOT right-to-left ! …
    Bitwise NOT right-to-left ~ …
    Unary Plus right-to-left + …
    Unary Negation right-to-left - …
    Prefix Increment right-to-left ++ …
    Prefix Decrement right-to-left -- …
    typeof right-to-left typeof …
    void right-to-left void …
    delete right-to-left delete …
    14 Multiplication left-to-right … * …
    Division left-to-right … / …
    Remainder left-to-right … % …
    13 Addition left-to-right … + …
    Subtraction left-to-right … - …
    12 Bitwise Left Shift left-to-right … << …
    Bitwise Right Shift left-to-right … >> …
    Bitwise Unsigned Right Shift left-to-right … >>> …
    11 Less Than left-to-right … < …
    Less Than Or Equal left-to-right … <= …
    Greater Than left-to-right … > …
    Greater Than Or Equal left-to-right … >= …
    in left-to-right … in …
    instanceof left-to-right … instanceof …
    10 Equality left-to-right … == …
    Inequality left-to-right … != …
    Strict Equality left-to-right … === …
    Strict Inequality left-to-right … !== …
    9 Bitwise AND left-to-right … & …
    8 Bitwise XOR left-to-right … ^ …
    7 Bitwise OR left-to-right … | …
    6 Logical AND left-to-right … && …
    5 Logical OR left-to-right … || …
    4 Conditional right-to-left … ? … : …
    3 Assignment right-to-left … = …
    … += …
    … -= …
    … *= …
    … /= …
    … %= …
    … <<= …
    … >>= …
    … >>>= …
    … &= …
    … ^= …
    … |= …
    2 yield right-to-left yield …
    1 Spread n/a ... …
    0 Comma / Sequence left-to-right … , …
    Hide Sidebar