/
Программирование
/
Курс JavaScript
/

Композиция операций

JavaScript: Композиция операций

В JavaScript, как и в математике, можно объединять несколько операций в одну строку. Такие выражения интерпретатор обрабатывает шаг за шагом по определённым правилам.

Рассмотрим пример:

console.log(2 * 4 * 5 * 10);

Этот код состоит из нескольких операций умножения, объединённых в одно выражение. Чтобы понять, как интерпретатор выполняет выражение, разберём его по этапам:

  • Сначала вычисляется 2 * 4: 8 * 5 * 10
  • Затем 8 * 5: 40 * 10
  • И наконец 40 * 10: 400

Итоговый результат составляет 400.

А если разные операции?

Всё просто, пока используются одинаковые операторы. Но что произойдёт, если объединить, например, умножение и сложение?

console.log(2 + 3 * 4);
2 + 3 * 4
    └─┬─┘
2 +  12
└──┬───┘
   14

Получится ли 20 или 14? Ответ: 14.

Это объясняется тем, что в JavaScript, как и в математике, у операций есть приоритет. Умножение выполняется раньше сложения, если не использовать скобки. Мы разберём это подробнее в уроке про приоритеты.

Примеры с вычитанием и отрицательными числами

То же правило работает и для вычитания:

console.log(10 - 2 * 3); // => 4

Сначала выполняется умножение: 10 - 6 = 4.

Если же в выражении есть отрицательные числа, унарный минус применяется уже после возведения в степень:

console.log(-2 ** 2); // => -4, два в степени два, затем применяется минус
console.log(-2 * 5);  // => -10, минус два умноженное на пять
console.log(4 + -2);  // => 2
console.log(6 - -2);  // => 8

Во всех примерах, кроме первого, сначала вычисляется унарный минус (-2), и затем проводятся остальные операции.

Рассмотрим подробнее последний пример:

console.log(6 - -2); // => 8

Сначала вычисляется унарный минус (-2), и затем операция превращается в 6 - (-2), что даёт 8. Это то же самое, что:

console.log(6 + 2); // => 8

Что нужно запомнить

  • Выражения могут состоять из нескольких операций.
  • JavaScript вычисляет их поэтапно: слева направо, соблюдая приоритет операций.
  • Скобки можно использовать, чтобы явно указать порядок вычислений.

Задание

Вы идёте в магазин за подарками: 3 книги по 200 рублей и 2 ручки по 30 рублей. Рассчитайте и выведите итоговую стоимость покупки.

3 * 200  +  2 * 30
    ↓           ↓
   600    +    60    =  660

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются