Результат одной операции становится входом другой
Композиция операций позволяет записать весь расчёт одним выражением. В 2 * 4 * 5 * 10 промежуточные значения равны 8, 40 и 400. В выражениях с разными операторами дополнительно учитывается их приоритет.
Задание источника
Вычислите 8 / 2 + 5 - -3 / 2, не заменяя его готовым числовым ответом:
console.log(8 / 2 + 5 - -3 / 2);
Вывод — 10.5.
Разбор по частям
Первое деление даёт 4. Второе частное равно −1,5. После этого выполняется 4+5−(−1,5), то есть 9+1,5=10,5.
Для проверки можно временно расставить скобки, не меняющие заданную группировку:
console.log((8 / 2) + 5 - ((-3) / 2));
Этот вариант делает отрицательный операнд и оба частных наглядными.
Что изменит результат
Если сначала объединить 2 + 5 в знаменателе, получится другое выражение. Если потерять один минус, последнее действие станет вычитанием положительных 1,5. Такие ошибки не обязательно вызывают SyntaxError: программа может корректно выполнить неверно записанную формулу.
Инструкция вывода вокруг выражения
Console.log получает уже вычисленный числовой результат. Кавычки вокруг всего выражения заставили бы вывести его текст буквально. В исходном уроке расчёт намеренно выполняется без переменных; дальнейшее выделение промежуточных значений под понятными именами — другой способ улучшить читаемость, но не обязательная часть этого задания.
Hexlet / Code Basics и участники · Исходный урок и решение · GNU AGPL v3. Формула и решение сохранены; промежуточные шаги добавлены.