Арифметика JavaScript

Обычная ситуация с числами - это арифметика.

Арифметические операторы JavaScript

Арифметические операторы выполняют арифметические операции с числами (текст или переменные).

оператор описание
+ Добавление
- Вычитание
* Множество
** Мощность (ES2016)
/ Деление
% Коэффициент
++ Увеличение
-- Уменьшение

Арифметические операторы

Типичные арифметические операции работают с двумя числами.

Эти два числа могут быть litteral:

инстанция

var x = 7 + 8;

попробуйте сами

Или переменная:

инстанция

var x = a + b;

попробуйте сами

Или выражение:

инстанция

var x = (7 + 8) * a;

попробуйте сами

Оператор и операнд

В арифметических операциях число называетсяОперанд.

Операция (выполняемая между двумя операндами)операторОпределение.

Операнд оператор Операнд
7 + 8

Добавление

ДобавлениеОператор (+Числитель:

var x = 7;
var y = 8;
var z = x + y; 

попробуйте сами

Вычитание

ВычитаниеОператор (-Числитель.

var x = 7;
var y = 8;
var z = x - y; 

попробуйте сами

Множество

МножествоОператор (*Множитель.

var x = 7;
var y = 8;
var z = x * y; 

попробуйте сами

Деление

ДелениеОператор (/Делитель.

var x = 7;
var y = 2;
var z = x / y; 

попробуйте сами

Коэффициент

КоэффициентОператор (%Возвращает оставшуюся часть от деления.

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)

Подсказка:Выражения в скобках будут полностью вычислены до использования их значений в其余 части выражения.