Oprócz znajomości samych operatorów niezbędna jest jeszcze wiedza o tym, jaki mają one priorytety, czyli jaka jest kolejność wykonywania reprezentowanych przez nie operacji. Wiemy np. z matematyki, że mnożenie jest silniejsze od dodawania, zatem najpierw mnożymy, potem dodajemy. W JavaScripcie jest podobnie, siła każdego operatora jest ściśle określona. Zostało to przedstawione w tabeli 2.14. Im wyższa pozycja w tabeli, tym wyższy priorytet operatora. Operatory znajdujące się na jednym poziomie (w jednym wierszu) mają ten sam priorytet.
Tabela 2.14. Priorytety operatorów
Lp. |
Operatory |
Symbole |
1 |
indeks tablicy, wywołanie funkcji |
[], () |
2 |
inkrementacja i dekrementacja, ustalenie znaku, negacja bitowa i logiczna, utworzenie obiektu, ustalenie typu zmiennej, usunięcie składowej |
++, --, +, -, ~, !, new, typeof, delete |
3 |
mnożenie, dzielenie, reszta z dzielenia |
*, /, % |
4 |
dodawanie, odejmowanie |
+, - |
5 |
przesunięcie bitowe, w lewo, w prawo, w prawo z wypełnieniem zerami |
<<, >>, >>> |
6 |
mniejsze, większe, mniejsze lub równe, większe lub równe, porównanie typów |
<, >, <=, >= |
7 |
równe, różne |
==, != |
8 |
iloczyn bitowy |
& |
9 |
bitowa różnica symetryczna |
^ |
10 |
suma bitowa |
| |
11 |
iloczyn logiczny |
&& |
12 |
suma logiczna |
|| |
13 |
warunkowy |
? : |
14 |
operatory przypisania |
=, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>= |
15 |
rozdzielanie wyrażeń |
, |