Арифметические операторы используются для выполнения арифметических операций с числами (константами или переменными):
Оператор | Описание |
---|---|
+ | Сложение |
- | Вычитание |
* | Умножение |
/ | Деление |
% | Остаток от деления |
++ | Увеличение на 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 |
Внимание! Выражения в круглых скобках полностью вычисляются до применения коэффициентов остальных выражений.