Арифметика в 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()
19newСоздание объектаnew Date()
17++Постфиксный инкрементi++
17--Постфиксный декрементi--
16++Префиксный инкремент++i
16--Префиксный декремент--i
16!Логическое НЕ!(x==y)
15typeofТип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

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