Для выполнения различных действий над значениями (например, сложение, вычитание и т.д.) язык JavaScript предоставляет операции. Операции принимают один, два или три операнда и применяют к ним некоторые действия. В качестве операндов в зависимости от типа операции можно применять литералы (числа, строки), переменные и константы или результаты других операций. Ранее мы уже использовать одну, наиболее распространенную операцию - операцию присвоения в виде символа =, которая присваивает переменной или константе некоторое значение:
const num = 4; // операция присвоения - присваиваем константе num число 4 console.log(num); // 4
Рассмотрим, какие арифметические операции мы можем использовать в JavaScript.
JavaScript поддерживает все базовые математические операции:
Сложение:
const x = 50 + 10; console.log(x); // 60
Вычитание:
const x = 50 - 10; console.log(x); // 40
Умножение:
const x = 50 * 10; console.log(x); // 500
Деление:
const x = 50 / 10; console.log(x); // 5 const z = 50 / 4; console.log(z); // 12.5
Деление по модулю (оператор %) возвращает остаток от деления:
const x = 15 % 4; console.log(x); // 3
Результатом будет 3, так как наибольшее целое число, которое меньше или равно 15 и при этом делится на 4 без остатка равно 12, а 15 - 12 = 3.
Возведение в степень. Оператор ** возводит число в определенную степень:
число ** степень
Например:
const n = 2 ** 3; console.log(n); // 8 const x = 3; const y = 2; const z = x ** y; console.log(z); // 9
Инкремент:
let x = 5; x++; // x = 6
Оператор инкремента ++
увеличивает значение переменной на единицу. Существует префиксный инкремент, который сначала увеличивает переменную
на единицу, а затем возвращает ее значение. И есть постфиксный инкремент, который сначала возвращает значение переменной, которое было до увеличения его на единицу:
// префиксный инкремент let x = 5; let z = ++x; console.log(x); // 6 console.log(z); // 6 // постфиксный инкремент let a = 5; let b = a++; console.log(a); // 6 console.log(b); // 5
Инкремент аналогичен операции:
a = a + 1;
Декремент уменьшает значение переменной на единицу. Также есть префиксный и постфиксный декремент:
// префиксный декремент let x = 5; let z = --x; console.log(x); // 4 console.log(z); // 4 // постфиксный декремент let a = 5; let b = a--; console.log(a); // 4 console.log(b); // 5
Как и принято в математике, все операции выполняются слева направо и различаются по приоритетам: сначала операции инкремента и декремента, затем выполняются умножение и деление, а потом сложение и вычитание. Чтобы изменить стандартный ход выполнения операций, часть выражений можно поместить в скобки:
let x = 10; let y = 5 + (6 - 2) * --x; console.log(y); //41
В JavaScript также есть ряд операций, которые сочетают арифметические операции с присвоением:
+=
Сложение с последующим присвоением результата. Например:
let a = 23; a += 5; // аналогично a = a + 5 console.log(a); // 28
-=
Вычитание с последующим присвоением результата. Например:
let a = 28; a -= 10; // аналогично a = a - 10 console.log(a); // 18
*=
Умножение с последующим присвоением результата:
let x = 20; x *= 2; // аналогично x = x * 2 console.log(x); // 40
**=
Возведение в степень с последующим присвоением результата:
let x = 5; x **= 2; console.log(x); // 25
/=
Деление с последующим присвоением результата:
let x = 40; x /= 4; // аналогично x = x / 4 console.log(x); // 10
%=
Получение остатка от деления с последующим присвоением результата:
let x = 10; x %= 3; // аналогично x = x % 3 console.log(x); // 1, так как 10 - 3*3 = 1