Арифметические операторы используются для выполнения арифметических операций с числами (константами или переменными):
| Оператор | Описание |
|---|---|
| + | Сложение |
| - | Вычитание |
| * | Умножение |
| / | Деление |
| % | Остаток от деления |
| ++ | Увеличение на 1 |
| -- | Уменьшение на 1 |
Арифметические операции
Типичная арифметическая операция осуществляется с двумя числами.
Этими числами могут быть константы:
var x = 100 + 50;
или переменные:
var x = a + b;
или выражения:
var x = (100 + 50) * a;
Операторы и операнды
Числа в арифметической операции называют операндами.
Операция, совершаемая между двумя операндами, называется оператор.
| Операнд | Оператор | Операнд |
|---|---|---|
| 100 | + | 50 |
Оператор сложения (+) вычисляет сумму чисел:
var x = 5;
var y = 2;
var z = x + y;
Оператор вычитания (-) вычисляет разницу чисел:
var x = 5;
var y = 2;
var z = x - y;
Оператор умножения (*) перемножает числа:
var x = 5;
var y = 2;
var z = x * y;
Оператор деления (/) делит одно число на другое:
var x = 5;
var y = 2;
var z = x / y;
Оператор деления по модулю (%) возвращает остаток от деления двух чисел:
var x = 5;
var y = 2;
var z = x % y;
Оператор инкремента (++) увеличивает число на 1:
var x = 5;
x++;
var z = x;
Оператор декремента (--) уменьшает число на 1:
var x = 5;
x--;
var z = x;
Старшинство операторов
Старшинство операторов определяет порядок, в котором совершаются операции в арифметических выражениях.
Рассмотрим следующий пример:
var x = 100 + 50 * 3;
Какой результат мы получим? Как при вычислении 150 * 3 или 100 + 150?
Что вычисляется первым - сложение или умножение?
И здесь действуют те же правила, что и в обычной математике: умножение вычисляется первым.
Умножение (*) и деление (/) имеют более высокий приоритет, чем сложение (+) и вычитание (-).
И также как и в обычной математике старшинство можно изменить при помощи круглых скобок:
var x = (100 + 50) * 3;
В этом случае первым вычисляется операция, расположенная внутри круглых скобок.
Если у нескольких операций одинаковое старшинство (как у сложения и вычитания), то они вычисляются слева направо:
var x = 100 + 50 - 3;
Коэффициенты старшинства операторов в JavaScript:
| Коэффициент | Оператор | Описание | Пример |
|---|---|---|---|
| 20 | ( ) | Группирование выражений | (3 + 4) |
| 19 | . | Член объекта | person.name |
| 19 | [] | Член объекта или массива | person["name"] |
| 19 | () | Вызов функции | myFunction() |
| 19 | new | Создание объекта | new Date() |
| 17 | ++ | Постфиксный инкремент | i++ |
| 17 | -- | Постфиксный декремент | i-- |
| 16 | ++ | Префиксный инкремент | ++i |
| 16 | -- | Префиксный декремент | --i |
| 16 | ! | Логическое НЕ | !(x==y) |
| 15 | typeof | Тип | typeof x |
| 15 | ** | Возведение в степень | 10 ** 2 |
| 14 | * | Умножение | 10 * 5 |
| 14 | / | Деление | 10 / 18 |
| 14 | % | Деление по модулю | 10 % 5 |
| 13 | + | Сложение | 10 + 5 |
| 13 | - | Вычитание | 10 - 8 |
| 12 | << | Сдвиг влево | x << 2 |
| 12 | >> | Сдвиг вправо | x >> 2 |
| 12 | >>> | Сдвиг вправо (без знака) | x >>> 2 |
| 11 | < | Меньше чем | x < y |
| 11 | <= | Меньше или равно | x <= y |
| 11 | > | Больше чем | x > y |
| 11 | >= | Больше или равно | x >= y |
| 10 | == | Равенство | x == y |
| 10 | === | Строгое равенство | x === y |
| 10 | != | Неравенство | x != y |
| 10 | !== | Строгое неравенство | x !== y |
| 6 | && | Логическое И | x && y |
| 5 | || | Логическое ИЛИ | x || y |
| 3 | = | Присваивание | x = y |
| 3 | += | Присваивание | x += y |
| 3 | -= | Присваивание | x -= y |
| 3 | *= | Присваивание | x *= y |
| 3 | %= | Присваивание | x %= y |
| 3 | <<= | Присваивание | x <<= y |
| 3 | >>= | Присваивание | x >>= y |
| 3 | >>>= | Присваивание | x >>>= y |
| 3 | &= | Присваивание | x &= y |
| 3 | ^= | Присваивание | x ^= y |
| 3 | |= | Присваивание | x |= y |
Внимание! Выражения в круглых скобках полностью вычисляются до применения коэффициентов остальных выражений.