DamiRocK

JavaScript: унарный минус, вычитание и значение 87

Вычисляем разность 6 и −81, различаем два знака минуса и показываем, почему отрицательное основание степени требует скобок.

Оператор и его аргументы

В 8 + 2 знак плюс является оператором, числа — операндами. Бинарная операция использует два операнда, унарная — один. Поэтому знак минус в 5 - 2 и в -2 играет разные роли.

Задание источника

Вычислите разность числа 6 и числа −81:

console.log(6 - (-81));

Вывод — 87. Вычитание отрицательного числа увеличивает первое число. Исходное решение записано как 6 - -81; скобки здесь добавлены для ясности и не меняют значение.

Не путать с декрементом

Пробелы между двумя отдельными минусами помогают читать вычитание и унарный знак. Слитная последовательность -- также существует в JavaScript как оператор декремента в подходящем контексте. Поэтому сокращать запись без понимания токенов нельзя.

Минус перед степенью

В JavaScript запись -2 ** 2 является синтаксической ошибкой: нужно явно выбрать смысл скобками. (-2) ** 2 даёт 4, а -(2 ** 2) — −4.

Это языковая особенность: нельзя механически переносить допустимость такого выражения из Python или математической записи. Унарный знак и возведение в степень требуют ясной группировки.

Проверка смысла

В исходной задаче первый операнд — 6, второй — отрицательное 81. Перестановка дала бы −87. Название операции «разность» не делает её симметричной: порядок аргументов — часть условия.

Hexlet / Code Basics и участники · Исходный урок · Степень и унарные операторы: MDN · GNU AGPL v3. Решение сохранено; особенность синтаксиса дополнена.

Reading preferences

Appearance
Contrast
More options

Saved only in this browser. Your device’s reduced-motion setting is always respected. Browser zoom works throughout the site.