JavaScript -арифметика
Арифметические операторы JavaScript
Арифметические операторы выполняют арифметические действия над числами (литералами или переменными).
Operator | Description |
---|---|
+ | Addition |
- | Subtraction |
* | Multiplication |
** | Exponentiation (ES2016) |
/ | Division |
% | Modulus (Remainder) |
++ | Increment |
-- | Decrement |
Арифметические операции
Типичная арифметическая операция оперирует двумя числами.
Два числа могут быть литералами:
Пример
let x = 100 + 50;
или переменные:
Пример
let x = a + b;
или выражения:
Пример
let x = (100 + 50) * a;
Операторы и операнды
Числа (в арифметической операции) называются операндами .
Операция (которая должна выполняться между двумя операндами) определяется оператором .
Операнд | Оператор | Операнд |
---|---|---|
100 | + | 50 |
Добавление
Оператор сложения ( +
) складывает числа:
Пример
let x = 5;
let y = 2;
let z = x + y;
Вычитание
Оператор вычитания ( -
) вычитает числа.
Пример
let x = 5;
let y = 2;
let z = x - y;
Умножение
Оператор умножения ( *
) умножает числа.
Пример
let x = 5;
let y = 2;
let z = x * y;
Разделение
Оператор деления ( /
) делит числа.
Пример
let x = 5;
let y = 2;
let z = x / y;
Остаток
Оператор модуля ( %
) возвращает остаток от деления.
Пример
let x = 5;
let y = 2;
let z = x % y;
В арифметике деление двух целых чисел дает частное и остаток .
В математике результатом операции по модулю является остаток от арифметического деления.
Увеличение
Оператор приращения ( ++
) увеличивает числа.
Пример
let x = 5;
x++;
let z = x;
Уменьшение
Оператор декремента ( --
) уменьшает числа.
Пример
let x = 5;
x--;
let z = x;
Возведение в степень
Оператор возведения в степень ( **
) возводит первый операнд в степень второго операнда.
Пример
let x = 5;
let z =
x ** 2; // result is 25
x ** y дает тот же результат, что и Math.pow(x,y)
:
Пример
let x = 5;
let z =
Math.pow(x,2); // result is 25
Приоритет оператора
Приоритет оператора описывает порядок, в котором операции выполняются в арифметическом выражении.
Пример
let x = 100 + 50 * 3;
Является ли результат примера выше таким же, как 150 * 3, или он такой же, как 100 + 150?
Сначала выполняется сложение или умножение?
Как и в традиционной школьной математике, сначала делается умножение.
Умножение ( *
) и деление ( /
) имеют более высокий приоритет , чем сложение ( +
) и вычитание ( -
).
И (как в школьной математике) старшинство можно изменить с помощью круглых скобок:
Пример
let x = (100 + 50) * 3;
При использовании скобок сначала вычисляются операции внутри скобок.
Когда многие операции имеют одинаковый приоритет (например, сложение и вычитание), они вычисляются слева направо:
Пример
let x = 100 + 50 - 3;
Значения приоритета оператора JavaScript
Бледно-красные записи указывают на ECMAScript 2015 (ES6) или выше.
Ценность | Оператор | Описание | Пример |
---|---|---|---|
21 | ( ) | Группировка выражений | (3 + 4) |
20 | . | Член | человек.имя |
20 | [] | Член | человек["имя"] |
20 | () | Вызов функции | мояФункция() |
20 | новый | Создавать | новая дата() |
18 | ++ | Постфиксный инкремент | я++ |
18 | -- | Постфиксный декремент | я-- |
17 | ++ | Приращение префикса | ++я |
17 | -- | Уменьшение префикса | --я |
17 | ! | Логично не | !(х==у) |
17 | тип | Тип | тип х |
16 | ** | Возведение в степень (ES2016) | 10 ** 2 |
15 | * | Умножение | 10 * 5 |
15 | / | Разделение | 10 / 5 |
15 | % | Остаток отдела | 10 % 5 |
14 | + | Добавление | 10 + 5 |
14 | - | вычитание | 10 - 5 |
13 | << | Сдвиг влево | х << 2 |
13 | >> | Сдвиг вправо | х >> 2 |
13 | >>> | Сдвиг вправо (без знака) | х >>> 2 |
12 | < | Меньше, чем | х < у |
12 | <= | Меньше или равно | х <= у |
12 | > | Лучше чем | х > у |
12 | >= | Больше или равно | х >= у |
12 | в | Недвижимость в объекте | "ПИ" по математике |
12 | экземпляр | Экземпляр объекта | экземпляр массива |
11 | == | Равный | х == у |
11 | === | Строгое равенство | х === у |
11 | знак равно | Неравный | х != у |
11 | !== | Строгий неравный | х !== у |
10 | & | Побитовое И | х и у |
9 | ^ | Побитовое исключающее ИЛИ | х ^ у |
8 | | | Побитовое ИЛИ | х | Д |
7 | && | Логическое И | х && у |
6 | || | Логическое ИЛИ | х || Д |
5 | ?? | Нулевое слияние | Икс?? Д |
4 | ? : | Состояние | ? "Да нет" |
3 | += | Назначение | х += у |
3 | знак равно | Назначение | х / = у |
3 | знак равно | Назначение | х -= у |
3 | знак равно | Назначение | х *= у |
3 | знак равно | Назначение | х%= у |
3 | <<= | Назначение | х <<= у |
3 | >>= | Назначение | х >>= у |
3 | >>>= | Назначение | х >>>= у |
3 | знак равно | Назначение | х &= у |
3 | ^= | Назначение | х ^ = у |
3 | |= | Назначение | х |= у |
2 | урожай | Функция паузы | выход х |
1 | , | Запятая | 5 , 6 |
Выражения в круглых скобках полностью вычисляются до того, как значение будет использовано в остальной части выражения.