Приоритет выполнения операторов

В какой последовательности будет вычисляться это выражение?

let x = 5 + 10 * 3 / 2;
console.log( x ); // 20

Это зависит от приоритета выполнения операторов. В данном случае последовательность вычисления выражения будет следующей:

  • Число 10 будет умножено на 3, т. к. приоритет оператора умножения выше приоритета оператора сложения.
  • Полученное значение будет поделено на 2, поскольку приоритет оператора деления равен приоритету оператора умножения (а операторы с равными приоритетами выполняются слева направо), но выше чем у оператора сложения.
  • К полученному значению будет прибавлено число 5, т. к. оператор присваивания = имеет наименьший приоритет.
  • Значение будет присвоено переменной x.

С помощью скобок можно изменить последовательность вычисления выражения:

let x = (5 + 10) * 3 / 2;
console.log( x ); // 22.5

Теперь порядок вычислений будет другим:

  • К числу 5 будет прибавлено 10.
  • Полученное значение будет умножено на 3.
  • Полученное значение будет поделено на 2.
  • Значение будет присвоено переменной x.

Перечислим операторы в порядке убывания приоритета:

  • ++, -- — постфиксный инкремент, постфиксный декремент;
  • !, ~, ++, --, +, - — отрицание, двоичная инверсия, префиксный инкремент, префиксный декремент, унарный плюс, унарный минус;
  • ** — возведение в степень;
  • *, /, % — умножение, деление, остаток от деления;
  • +, - — сложение и вычитание;
  • <<, >>, >>> — двоичные сдвиги;
  • <, <=, >, >= — операторы сравнения;
  • ==, !=, ===, !== — операторы сравнения;
  • & — двоичное И;
  • ^ — двоичное исключающее ИЛИ;
  • | — двоичное ИЛИ;
  • =, +=, -=, *=, /=, %= — присваивание;
  • , — оператор запятая.

Учебник по Node.js и JavaScript
Учебник по JavaScript (Node.js) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов