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.

Summary tableEDIT

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

Priority Level type of Operation Relevance of operator
20 圆括号 N/A ( … )
19 成员访问 From left to right … . …
需计算的成员访问 From left to right … [ … ]
new(with parameter list) N/A new … ( … )
18 Function call From left to right … ( … )
New (no parameter list) From right to left new …
17 Post increment (operator behind) N/A … ++
Post decrement (operator behind) N/A … --
16 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 …
15 Power From right to left … ** …
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 … , …
Operator Describe
. [] () field access, array subscripts, function calls, and expression grouping
++ -- - ~ ! Delete new typeof void Unary operators, return data types, object creation, undefined values
* / % Multiplication, division, modulo
+ - + addition, subtraction, string connection
<< >> >>> Shift
< <= > >= instanceof Less than, equal to, greater than, greater than or equal to, instanceof
== != === !== Equal, not equal, strictly equal, not strictly equal
& Bitwise-AND
^ Bitwise XOR OR
| Bitwise OR
&& Logic and
|| Logical OR
?: Conditions
= op= Assignment, Operation assignment
, Multi-value evaluation



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: (), +, +, *, =.

The expression in parentheses is evaluated first. There are two addition operators in the parentheses. Because two addition operators have the same precedence, they are evaluated from left to right. Add 96 and 3 first, then add it and add it to 45, resulting in 144.
Then the multiplication operation. 78 times 144 to get the result 11232.
A finally an assignment operation. Assign 11232 to Z.

Precedence of operators in JavaScript

Contact Us

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.