Precedence

Обновлено: 09.03.2023

Пріоритет оператора JavaScript

Пріоритет описує порядок, у якому виконуються операції в арифметичному виразі.

Як і в традиційній математиці, спочатку виконується множення.

Під час використання дужок спочатку обчислюються операції всередині дужок.

Якщо оператори мають однаковий пріоритет (наприклад, + і -), вони обчислюються зліва направо.

Operator Precedence Values

Expressions in parentheses are computed before the rest of the expression
Function are executed before the result is used in the rest of the expression
ValOperatorDescriptionExample
18( )Expression Grouping(100 + 50) * 3
17.Member Ofcar.name
17[]Member Ofcar["name"]
17?.Optional Chaining ES2020x ?. y
17()Function CallmyFunction()
17newNew with Argumentsnew Date("June 5,2022")
16newNew without Argumentsnew Date()
Increment Operators
Postfix increments are executed before prefix increments
15++Postfix Incrementi++
15--Postfix Decrementi--
14++Prefix Increment++i
14--Prefix Decrement--i
NOT Operators
14!Logical NOT!(x==y)
14~Bitwise NOT~x
Unary Operators
14+Unary Plus+x
14-Unary Minus-x
14typeofData Typetypeof x
14voidEvaluate Voidvoid(0)
14deleteProperty Deletedelete myCar.color
Arithmetic Operators
Exponentiations are executed before multiplications
Multiplications and divisions are executed before additions and subtractions
13**Exponentiation ES201610 ** 2
12*Multiplication10 * 5
12/Division10 / 5
12%Division Remainder10 % 5
11+Addition10 + 5
11-Subtraction10 - 5
11+Concatenation"John" + "Doe"
Shift Operators
10<<Shift Leftx << 2
10>>Shift Right (signed)x >> 2
10>>>Shift Right (unsigned)x >>> 2
Relational Operators
9inProperty in Object"PI" in Math
9instanceofInstance of Objectx instanceof Array
Comparison Operators
9<Less thanx < y
9<=Less than or equalx <= y
9>Greater thanx > y
9>=Greater than or equalx >= Array
8==Equalx == y
8===Strict equalx === y
8!=Unequalx != y
8!==Strict unequalx !== y
Bitwise Operators
7&Bitwise ANDx & y
6^Bitwise XORx ^ y
5|Bitwise ORx | y
Logical Operators
4&&Logical ANDx && y
3||Logical ORx || y
3??Nullish Coalescing ES2020x ?? y
Conditional (ternary) Operator
2? :Condition? "yes" : "no"
Assignment Operators
Assignments are executed after other operations
2=Simple Assignmentx = y
2+=Addition Assignmentx += y
2-=Subtraction Assignmentx -= y
2*=Multiplication Assignmentx *= y
2**=Exponentiation Assignmentx **= y
2/=Division Assignmentx /= y
2%=Remainder Assignmentx %= y
2<<=Left Shift Assignmentx <<= y
2>>=Right Shift Assignmentx >>= y
2>>>=Unsigned Right Shiftx >>>= y
2&=Bitwise AND Assignmentx &= y
2|=Bitwise OR Assignmentx |= y
2^=Bitwise XOR Assignmentx ^= y
2&&=Logical AND Assignmentx &= y
2||=Logical OR Assignmentx ||= y
2:Colon Assignmentx : 5
2=>Arrowx => y
2yieldPause / Resumeyield x
2yield*Delegateyield* x
2...Spread...x
1,Commax , y