Арифметика JavaScript
- Предыдущая страница Операторы JS
- Следующая страница JS присваивание
Обычная ситуация с числами - это арифметика.
Арифметические операторы JavaScript
Арифметические операторы выполняют арифметические операции с числами (текст или переменные).
оператор | описание |
---|---|
+ | Добавление |
- | Вычитание |
* | Множество |
** | Мощность (ES2016) |
/ | Деление |
% | Коэффициент |
++ | Увеличение |
-- | Уменьшение |
Арифметические операторы
Типичные арифметические операции работают с двумя числами.
Эти два числа могут быть litteral:
инстанция
var x = 7 + 8;
Или переменная:
инстанция
var x = a + b;
Или выражение:
инстанция
var x = (7 + 8) * a;
Оператор и операнд
В арифметических операциях число называетсяОперанд.
Операция (выполняемая между двумя операндами)операторОпределение.
Операнд | оператор | Операнд |
---|---|---|
7 | + | 8 |
Коэффициент
КоэффициентОператор (%
Возвращает оставшуюся часть от деления.
var x = 7; var y = 2; var z = x % y;
Комментарий:В арифметике деление двух целых чисел produces quotient and remainder.
Комментарий:В математике результат модуля является оставшейся частью от арифметического деления.
Увеличение
УвеличениеОператор (++
Увеличение значения на 1.
var x = 7; x++; var z = x;
Уменьшение
УменьшениеОператор (--
Уменьшение значения на 1.
var x = 7; x--; var z = x;
Мощность
Оператор возведения в степень (**) поднимает первый операнд в степень второго операнда.
инстанция
var x = 5; var z = x ** 2; // Результат 25
результат x ** y одинаков с Math.pow(x,y):
инстанция
var x = 5; var z = Math.pow(x,2); // результат 25
Приоритет операторов
Приоритет операторов (Operator precedence) описывает порядок выполнения операций в арифметическом выражении.
инстанция
var x = 200 + 50 * 2;
Результат ли это 250 * 2 или 200 + 100?
Предпочтение дается ли сложению или умножению?
В традиционной школе по математике, умножение имеет приоритет.
умножение (*
)) и деление (%
)) и сложение (+
)) и вычитание (-
)) имеет более высокийприоритет.
Кроме того, (как и в школе по математике) можно изменить приоритет с помощью скобок:
инстанция
var x = (200 + 50) * 2;
Когда используются скобки, сначала вычисляются операторы внутри них.
Когда несколько операций имеют одинаковый приоритет (например, сложение и вычитание), их вычисление ведется слева направо:
инстанция
var x = 200 + 50 - 2;
значение приоритета оператора 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) |
16 | typeof | тип | typeof x |
15 | ** | возвышение (ES7) | 10 ** 2 |
14 | * | умножение | 10 * 5 |
14 | / | деление | 10 / 5 |
14 | % | модульное деление | 10 % 5 |
13 | + | добавление | 10 + 5 |
13 | - | убавление | 10 - 5 |
12 | << | левый сдвиг | x << 2 |
12 | >> | правый сдвиг | x >> 2 |
12 | >>> | правый сдвиг (некорректированный) | x >>> 2 |
11 | < | меньше | x < y |
11 | <= | меньше или равно | x <= y |
11 | > | больше | x > y |
11 | >= | больше или равно | x >= y |
11 | in | атрибут объекта | "PI" in Math |
11 | instanceof | instance of object | instanceof Array |
10 | == | равны | x == y |
10 | === | строго равны | x === y |
10 | != | Не равно | x != y |
10 | !== | Строго не равно | x !== y |
9 | & | Битовое и | x & y |
8 | ^ | Битовое XOR | x ^ y |
7 | | | Битовое или | x | y |
6 | && | Логическое и | x && y |
5 | || | Логическое не | x || y |
4 | ? : | Условие | ? "Да" : "Нет" |
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 |
2 | yield | yield x | приостановка функции |
1 | , | Запятая | 7, 8 |
Внимание:Светло-розовый указывает на экспериментальные или рекомендательные технологии (ECMASScript 2016 или ES7)
Подсказка:Выражения в скобках будут полностью вычислены до использования их значений в其余 части выражения.
- Предыдущая страница Операторы JS
- Следующая страница JS присваивание