Przejdź do:

To tłumaczenie jest niekompletne. Pomóż przetłumaczyć ten artykuł z języka angielskiego.

 
Pierwszeństwo operatorów ustala kolejność, w jakiej operatory są ewaluowane. Operatory z wyższym pierwszeństwem są ewaluowane jako pierwsze.
 

Prosty przykład:

3 + 4 * 5 // zwraca 23	 

Operator mnożenia ("*") ma wyższe pierwszeństwo niż operator dodawania ("+") i dlatego będzie ewaluowany jako pierwszy.

Łączność

Łączność określa kolejność, w jakiej przetwarzane są operatory o takim samym pierwszeństwie. Przykłądowo, rozważny wyrażenie:

a OP b OP c

Lewo-łączność (od lewej do prawej) oznacza, iż będzie ono przetworzone jako (a OP b) OP c, podczas gdy prawo-łączność (od prawej do lewej) oznacza, iż będzie ono zinterpretowane jako a OP (b OP c). Operatory przypisania są prawo-łączne, więc możesz napisać:

a = b = 5;

oczekując, że a i b otrzymają wartość 5. Wynika to z faktu, iż operator przypisania zwraca wartość, która jest przypisana. Najpierw wartość b ustawiana jest na 5, a następnie wartość zmiennej a jest ustawiana na wartość b.

Tabela

Poniższa tabela uporządkowana jest od najwyższego (19) do najniższego (0) pierwszeństwa.

Pierwszeństwo Rodzaj operatora Łączność Operator
19 Grouping n/a ( … )
18 Member Access left-to-right … . …
Computed Member Access left-to-right … [ … ]
new (z listą argumentów) n/a new … ( … )
17 Wywołanie funkcji left-to-right … ( … )
new (bez listy argumentów) right-to-left new …
16 Postinkrementacja n/a … ++
Postdekrementacja n/a … --
15 Negacja logiczna (NOT) right-to-left ! …
Negacja bitowa (NOT) right-to-left ~ …
Unary Plus right-to-left + …
Unary Negation right-to-left - …
Preinkrementacja right-to-left ++ …
Predekrementacja right-to-left -- …
typeof right-to-left typeof …
void right-to-left void …
delete right-to-left delete …
14 Mnożenie left-to-right … * …
Dzielenie left-to-right … / …
Reszta z dzielenia left-to-right … % …
13 Dodawanie left-to-right … + …
Odejmowanie left-to-right … - …
12 Bitowe przesunięcie w lewo left-to-right … << …
Bitowe przesunięcie w prawo left-to-right … >> …
Bitowe przesunięcie w prawo bez znaku left-to-right … >>> …
11 Mniejsze niż left-to-right … < …
Mniejsze lub równe left-to-right … <= …
Większe niż left-to-right … > …
Większe lub równe left-to-right … >= …
in left-to-right … in …
instanceof left-to-right … instanceof …
10 Równość left-to-right … == …
Nierówność left-to-right … != …
Ścisła równość left-to-right … === …
Ścisła nierówność left-to-right … !== …
9 Koniunkcja bitowa (AND) left-to-right … & …
8 Bitowa alternatywa wykluczająca (XOR) left-to-right … ^ …
7 Alternatywa bitowa (OR) left-to-right … | …
6 Koniunkcja logiczna (AND) left-to-right … && …
5 Alternatywa logiczna (OR) left-to-right … || …
4 Warunek right-to-left … ? … : …
3 Przypisanie right-to-left … = …
… += …
… -= …
… *= …
… /= …
… %= …
… <<= …
… >>= …
… >>>= …
… &= …
… ^= …
… |= …
2 yield right-to-left yield …
1 Spread n/a ... …
0 Comma / Sequence left-to-right … , …

Autorzy i etykiety dokumentu

Autorzy tej strony: jangromko, teoli, Mgjbot, Ptak82, Internauta1024A
Ostatnia aktualizacja: jangromko,