Арифметические операторы JavaScript

Арифметические операторы — это основные инструменты для выполнения математических вычислений в JavaScript. Они работают с числами и возвращают числовые результаты.


Основные арифметические операторы

Оператор Название Пример Результат
+ Сложение 5 + 3 8
- Вычитание 10 - 4 6
* Умножение 7 * 2 14
/ Деление 15 / 3 5
% Остаток от деления (модуль) 17 % 5 2 (так как 17 = 3×5 + 2)

Пример использования остатка:

const isEven = number => number % 2 === 0;
console.log(isEven(4)); // true
console.log(isEven(7)); // false

Возведение в степень

Оператор ** возводит первое число в степень, указанную вторым:

console.log(2 ** 4);   // 16 (2 × 2 × 2 × 2)
console.log(9 ** 0.5); // 3 (квадратный корень из 9)

Это удобно для расчётов: например, при вычислении площади квадрата или сложных процентов.


Унарный плюс и минус

Унарный плюс + преобразует значение в число:

console.log(+"42");     // 42 (строка → число)
console.log(+"hello");  // NaN (непреводимая строка)
console.log(+true);     // 1
console.log(+false);    // 0

Унарный минус - меняет знак числа:

console.log(-5);        // -5
console.log(-(3 + 2));  // -5
console.log(-"10");     // -10 (сначала приведение к числу, потом отрицание)

Инкремент и декремент

Инкремент ++ увеличивает значение на 1, декремент -- уменьшает на 1.

Различают две формы:

Префиксная форма (++x, --x)

Сначала изменяет значение, потом возвращает его:

let a = 5;
console.log(++a); // 6 — сначала прибавили, потом вернули
console.log(a);   // 6

Постфиксная форма (x++, x--)

Сначала возвращает текущее значение, потом изменяет:

let b = 5;
console.log(b++); // 5 — вернули старое значение
console.log(b);   // 6 — теперь уже увеличено

💡 Важно: в циклах и выражениях разница между i++ и ++i может привести к ошибкам, если не учитывать порядок.


Особенности: NaN и Infinity

JavaScript имеет специальные числовые значения, которые появляются при некорректных операциях.

NaN — Not a Number

Появляется, когда операция не может быть выполнена:

console.log(0 / 0);       // NaN
console.log("abc" * 2);   // NaN
console.log(NaN + 5);     // NaN
console.log(NaN === NaN); // false — важно! NaN не равен самому себе

Для проверки на NaN используйте Number.isNaN():

console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN("hello")); // false

Infinity — бесконечность

Получается при делении на ноль или при переполнении:

console.log(1 / 0);         // Infinity
console.log(-1 / 0);        // -Infinity
console.log(Number.MAX_VALUE * 2); // Infinity

console.log(Infinity + 1);  // Infinity
console.log(Infinity - Infinity); // NaN

⚠️ Не используйте == Infinity для проверки — лучше применять isFinite():

console.log(isFinite(1000));     // true
console.log(isFinite(Infinity)); // false