# Precedence of operators in JavaScript

Source: Internet
Author: User
Tags bitwise

Operator Precedence
Operator precedence in JavaScript is a set of rules. This rule controls the order in which operators execute when evaluating expressions. Operations with higher precedence are performed Mr. Foo the operators of lower precedence. For example, multiplication is performed prior to addition.

The following table lists the JavaScript operators by priority from highest to lowest. Operators with the same precedence are evaluated in order from left to right.

Where parentheses can be used to change the order of evaluation determined by the operator precedence. This means that the expression in parentheses should be evaluated all before it is used for the remainder of the expression.

z = * (3 + +)

There are five operators in the expression: =, *, (), +, and another +. Based on the rules for operator precedence, they are evaluated in the following order: (), +, +, *, =.

Binding nature

The binding determines the order in which operators with the same precedence are executed. Consider the following expression:

``a OP b OP c``

Left-associative (computed from left to right) is equivalent to enclosing the left subexpression with parentheses `(a OP b) OP c` , similar to right-to-left calculations `a OP (b OP c)` . The assignment operator is right-associative, so you can write:

``a = b = 5;``

`a`the result and `b` the value will be 5. This is because the return result of the assignment operator is the value to the right of the assignment operator, which is `b` assigned a value of 5 and is then `a` assigned `b=5` the return value, which is 5.

Summary table

The following table arranges all operators from highest to lowest in priority order.

priority (high-to-low) type of Operation Relevance of operator
19 `圆括号` N/A `( … )`
18 `成员访问` From left to right `… . …`
`需计算的成员访问` From left to right `… [ … ]`
`new`(with parameter list) N/A `new … ( … )`
17 Function call From left to right `… ( … )`
New (no parameter list) From right to left `new …`
16 Post increment (operator behind) N/A `… ++`
Post decrement (operator behind) N/A `… --`
15 Logical Non- From right to left `! …`
Bitwise non- From right to left `~ …`
One-dollar addition From right to left `+ …`
One-dollar subtraction From right to left `- …`
Forward increment From right to left `++ …`
Forward Decrement From right to left `-- …`
typeof From right to left `typeof …`
void From right to left `void …`
Delete From right to left `delete …`
14 Multiplication From left to right `… * …`
Division From left to right `… / …`
Take the mold From left to right `… % …`
13 Addition From left to right `… + …`
Subtraction From left to right `… - …`
12 Bitwise LEFT Shift From left to right `… << …`
Bitwise RIGHT SHIFT From left to right `… >> …`
Unsigned Right Shift From left to right `… >>> …`
11 Less than From left to right `… < …`
Less than or equal From left to right `… <= …`
Greater than From left to right `… > …`
Greater than or equal From left to right `… >= …`
Inch From left to right `… in …`
instanceof From left to right `… instanceof …`
10 Equals From left to right `… == …`
Non-equal sign From left to right `… != …`
Full equals From left to right `… === …`
Non-full equals From left to right `… !== …`
9 Bitwise-AND From left to right `… & …`
8 Bitwise XOR OR From left to right `… ^ …`
7 Bitwise OR From left to right `… | …`
6 Logic and From left to right `… && …`
5 Logical OR From left to right `… || …`
4 Conditional operators From right to left `… ? … : …`
3 Assign value From right to left `… = …`
`… += …`
`… -= …`
`… *= …`
`… /= …`
`… %= …`
`… <<= …`
`… >>= …`
`… >>>= …`
`… &= …`
`… ^= …`
`… |= …`
2 Yield From right to left `yield …`
yield* From right to left Yield* ...
1 Expand operator N/A `...`...
0 Comma From left to right `… , …`

Precedence of operators in JavaScript

Related Keywords:
Related Article

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

## A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

• #### Sales Support

1 on 1 presale consultation

• #### After-Sales Support

24/7 Technical Support 6 Free Tickets per Quarter Faster Response

• Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.