Арифметические и строковые операторы
Арифметические и строковые операторы
Основные арифметические операторы
10 + 3 // 13 — сложение
10 - 3 // 7 — вычитание
10 * 3 // 30 — умножение
10 / 3 // 3.3333... — деление (всегда float)
10 % 3 // 1 — остаток от деления (modulo)
10 ** 3 // 1000 — возведение в степень (ES2016)
Оператор + и конкатенация строк
+ — единственный арифметический оператор, который работает со строками:
// Если один операнд — строка, происходит конкатенация
'Hello' + ' ' + 'World' // 'Hello World'
'Цена: ' + 42 // 'Цена: 42' — число → строка
1 + 2 + '3' // '33' — слева направо: 3, затем '33'
'1' + 2 + 3 // '123' — слева направо: '12', затем '123'
Порядок выполнения
+ имеет значение! 1 + 2 + '3' === '33', но '3' + 1 + 2 === '312'.Остаток от деления %
Очень полезен для проверки чётности, циклических индексов и т.д.:
// Проверка чётности
5 % 2 // 1 — нечётное
4 % 2 // 0 — чётное
// Циклический индекс (оборот круга)
const colors = ['red', 'green', 'blue'];
colors[7 % 3] // colors[1] = 'green'
// Часы: 25:00 → 1:00
25 % 24 // 1
Приоритет операторов
JavaScript выполняет операторы в порядке их приоритета (как в математике):
2 + 3 * 4 // 14, не 20 — * выполняется раньше +
(2 + 3) * 4 // 20 — скобки меняют порядок
2 ** 3 ** 2 // 512 — ** правоассоциативен: 2 ** (3 ** 2) = 2 ** 9
Унарные операторы
-5 // отрицание
+true // 1 — принудительное приведение к числу
+'42' // 42
+'' // 0
typeof x // строка с типом
void 0 // undefined
Инкремент и декремент
let n = 5;
n++ // постфиксный: возвращает 5, потом n = 6
++n // префиксный: n = 7, возвращает 7
n-- // постфиксный: возвращает 7, потом n = 6
--n // префиксный: n = 5, возвращает 5
В отличие от многих языков (Java, C), в JavaScript нет целочисленного деления. 7 / 2 === 3.5, а не 3.
Если нужно целочисленное деление, используйте Math.floor(), Math.trunc() или Math.ceil():
Math.floor(7 / 2) // 3 — округление вниз
Math.trunc(7 / 2) // 3 — усечение дробной части
Math.ceil(7 / 2) // 4 — округление вверх
// Для отрицательных чисел разница:
Math.floor(-7 / 2) // -4
Math.trunc(-7 / 2) // -3