Арифметика в Javascript

Арифметические операторы используются для выполнения арифметических операций с числами (константами или переменными):

Оператор Описание
+ Сложение
- Вычитание
* Умножение
/ Деление
% Остаток от деления
++ Увеличение на 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

Внимание! Выражения в круглых скобках полностью вычисляются до применения коэффициентов остальных выражений.