Priorytety operatorów w JavaScript

Priorytet operatora (Operator Precedence) opisuje kolejność wykonywania operacji w wyrażeniach arytmetycznych.

Priorytet operatorów mnożenia (*) i dzielenia (/) jest wyższy niż priorytet dodawania (+) i odejmowania (-).

Przykład

Jak w tradycyjnej matematyce, najpierw wykonywane są operacje mnożenia:

let x = 100 + 50 * 3;

Spróbuj sam

Gdy używane są nawiasy okrągłe, najpierw obliczane są operacje wewnątrz nawiasów:

let x = (100 + 50) * 3;

Spróbuj sam

Operacje o tym samym priorytecie (np. * i /) są obliczane od lewej do prawej:

let x = 100 / 50 * 3;

Spróbuj sam

Wartości priorytetu operatora

Wyrażenia w nawiasach okrągłych są obliczane przed resztą wyrażenia, funkcje są wykonywane przed wynikiem używanym w reszcie wyrażenia:

Priorytet Operator Opis Przykład
18 ( ) Wyrażenie grupowe (100 + 50) * 3
17 . jest członkiem person.name
17 [] jest członkiem person["name"]
17 ?. łaczenie opcjonalne ES2020 x ?. y
17 () wywołanie funkcji myFunction()
17 new nowe z argumentami new Date("June 5,2022")
16 new nowe bez argumentów new Date()

operator przyrostowy

postrykrement jest wykonywane przed przedpredekrementem.

15 ++ postrykrement i++
15 -- postrykrement i--
14 ++ przedpredekrement ++i
14 -- przedpredekrement --i

operator NOT

14 ! logiczny nie !(x==y)
14 ~ niebitowy ~x

operator jednorodnikowy

14 + jednorodnikowy dodać +x
14 - jednorodnikowy odjąć -x
14 typeof typ danych typeof x
14 void ocena pustej void(0)
14 delete usunięcie właściwości delete myCar.color

operator arytmetyczny

operacja wykładnicza jest wykonywana przed mnożeniem.

mnożenie i dzielenie są wykonywane przed dodawaniem i odejmowaniem.

13 ** operacja wykładnicza ES2016 10 ** 2
12 * mnożenie 10 * 5
12 / dzielenie 10 / 5
12 % reszta dzielenia 10 % 5
11 + dodawanie 10 + 5
11 - odejmowanie 10 - 5
11 + łączenie "Bill" + "Gates"

operator przesunięcia

10 << przesunięcie w lewo x << 2
10 >> przesunięcie w prawo (z znakiem) x >> 2
10 >>> przesunięcie w prawo (bez znaku) x >>> 2

operator relacyjny

9 in właściwość obiektu "PI" w Math
9 instanceof instancja obiektu x instanceof Array

operator porównania

9 < mniejsze x < y
9 <= mniejsze lub równe x <= y
9 > większe x > y
9 >= większe lub równe x >= Array
8 == równe x == y
8 === rzeczywiste równe x === y
8 != różne x != y
8 !== rzeczywiste różne x !== y

operator bitowy

7 & iść bitowe x & y
6 ^ różnica bitowa x ^ y
5 | lub bitowe x | y

operator logiki

4 && logiczne i x && y
3 || logiczne lub x || y
3 ?? łączenie pustych wartości ES2020 x ?? y

warunkowy operator (trybinarny)

2 ? : Warunkowe ? "yes" : "no"

Operator przypisania

Przypisanie wykonywane po innych operacjach.

2 = Proste przypisanie x = y
2 : Przypisanie dwukropka x: 5
2 += Przypisanie dodawania x += y
2 -= Przypisanie odejmowania x -= y
2 *= Przypisanie mnożenia x *= y
2 **= Przypisanie wykładnicze x **= y
2 /= Przypisanie dzielenia x /= y
2 %= Przypisanie reszty x %= y
2 <<= Przypisanie przesunięcia w lewo x <<= y
2 >>= Przypisanie przesunięcia w prawo x >>= y
2 >>>= Przesunięcie w prawo bez znaku x >>>= y
2 &= Przypisanie logiczne AND x &= y
2 |= Przypisanie logiczne OR x |= y
2 ^= Przypisanie logiczne XOR x ^= y
2 &&= Przypisanie logiczne i x &= y
2 ||= Przypisanie logiczne lub x ||= y
2 => Strzałka x => y
2 yield Pauza / Odtworzenie yield x
2 yield* Operator delegacji yield* x
2 ... Operator rozszerzający ... x
1 , Przecinek x, y

Zobacz również

Lektura:Operatorzy JavaScript

Podręcznik referencyjny:Operatorzy JavaScript