Операторы в JavaScript применяются в определенном порядке. Этот порядок известен как старшинство операторов. Нижеследующая таблица приводит список операторов с убыванием старшинства сверху вниз. Операторы с одинаковым приоритетом расположены в порядке слева направо.
Операторы
Описание
. [] ()
Область доступа, индексирование массива, вызов функции
++ -- - ~ ! delete new typeof void
Унарные операторы, возвращаемые типы данных, создание объекта, неопределенные значения
* / %
Умножение, деление, деление по модулю.
+ - +
Сложение, вычитание, конкатенация строк
<< >> >>>
Побитовое смещение
< <= > >= instanceof
Меньше, меньше или равно, больше, больше или равно, instanceof
== != === !==
Равенство, неравенство, тождественность, не тождественность
&
Побитовое AND
^
Побитовое XOR
|
Побитовое OR
&&
Логическое AND
||
Логическое OR
?:
Условный
= OP=
Присваивание, присваивание с операцией
,
Множественное вычисление
Круглые скобки используются для изменения порядка вычислений. Выражение внутри скобок вычисляется перед тем, как его значение будет использоваться в остальном выражении.
Оператор с наивысшим приоритетом (старшинством) вычисляется перед оператором со старшинством, ниже его. Пример:
z = 78 * (96 + 3 + 45)
В этом выражении присутствует пять операторов: =, *, (), + и +. В соответствии со старшинством, они вычисляются в следующем порядке: (), *, +, +, =.
Первым вычисляется выражение в круглых скобках: здесь два дополнительных оператора, и они имеют одинаковый приоритет: 96 и 3 складываются, и затем добавляется 45, в итоге получается результат 144.
Следующим выполняется умножение: 78 и 144 умножаются, в результате значение равно 10998.
Последним выполняется присваивание: 11232 присваивается z.