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

Арифметические операторы нужны для вычислений: сложить цену и доставку, умножить стоимость товара на количество, найти остаток от деления или возвести число в степень.

let price = 500;
let count = 3;

let total = price * count;

console.log(total);

Результат:

1500

Здесь оператор * умножает price на count, а результат записывается в переменную total.

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

Арифметический оператор - это знак, который выполняет математическое действие над числами.

let result = 10 + 5;

В этом примере + - оператор, а 10 и 5 - значения, с которыми он работает.

Чаще всего арифметические операторы используют с числами, но JavaScript иногда сам пытается преобразовать значения к числу. Из-за этого важно понимать, что именно лежит в переменных.

Основные операторы

В JavaScript есть несколько основных арифметических операторов:

  • + - сложение;
  • - - вычитание;
  • * - умножение;
  • / - деление;
  • % - остаток от деления;
  • ** - возведение в степень.
console.log(10 + 2);
console.log(10 - 2);
console.log(10 * 2);
console.log(10 / 2);

Результат:

12
8
20
5

Сложение и вычитание

Оператор + складывает числа.

let price = 1000;
let delivery = 300;

let total = price + delivery;

console.log(total);

Результат:

1300

Оператор - вычитает одно число из другого.

let balance = 2000;
let payment = 750;

let rest = balance - payment;

console.log(rest);

Результат:

1250

Такие вычисления удобно выносить в переменные с понятными именами. Тогда по коду легче понять, что именно считается.

Умножение и деление

Оператор * умножает числа.

let itemPrice = 250;
let count = 4;

console.log(itemPrice * count);

Результат:

1000

Оператор / делит одно число на другое.

let total = 1200;
let users = 3;

console.log(total / users);

Результат:

400

Если делить на ноль, JavaScript вернет Infinity.

console.log(10 / 0);

Результат:

Infinity

В обычных расчетах такой результат чаще всего означает, что нужно проверить делитель.

Остаток от деления

Оператор % возвращает остаток от деления.

console.log(10 % 3);

Результат:

1

Число 10 делится на 3 три раза, а в остатке остается 1.

Остаток часто используют, чтобы проверить, делится ли число на другое без остатка.

let number = 8;

console.log(number % 2);

Результат:

0

Если остаток равен 0, значит число делится нацело. Например, так можно проверять четные числа.

Возведение в степень

Оператор ** возводит число в степень.

console.log(2 ** 3);

Результат:

8

Это то же самое, что умножить 2 на себя три раза.

console.log(2 * 2 * 2);

Степень удобно использовать, когда нужно посчитать квадрат или куб числа.

let side = 5;
let square = side ** 2;

console.log(square);

Результат:

25

Унарный плюс и минус

Операторы + и - могут работать не только между двумя значениями, но и перед одним значением.

Унарный минус меняет знак числа:

let temperature = 7;

console.log(-temperature);

Результат:

-7

Унарный плюс пытается преобразовать значение в число.

let value = '25';

console.log(+value);
console.log(typeof +value);

Результат:

25
number

Такой прием встречается в коде, но на первых порах понятнее использовать Number(). По нему сразу видно, что мы преобразуем значение в число.

Приоритет операций

JavaScript выполняет арифметические операции не просто слева направо. У операторов есть приоритет.

let result = 2 + 3 * 4;

console.log(result);

Результат:

14

Сначала выполнилось умножение 3 * 4, потом сложение.

Если порядок нужно изменить, используйте скобки.

let result = (2 + 3) * 4;

console.log(result);

Результат:

20

В реальном коде скобки часто ставят не только ради математики, но и ради читаемости. Если выражение можно понять с первого взгляда, с ним проще работать.

Плюс и строки

С оператором + нужно быть внимательнее. Он умеет не только складывать числа, но и склеивать строки.

console.log(10 + 5);
console.log('10' + 5);

Результат:

15
105

Во втором примере ‘10’ - строка. Поэтому JavaScript не сложил числа, а собрал строку ‘105’.

Если значение пришло строкой, например из prompt(), его нужно преобразовать в число перед вычислением.

let first = '10';
let second = '5';

console.log(Number(first) + Number(second));

Результат:

15

С другими арифметическими операторами JavaScript чаще пытается преобразовать строки к числам.

console.log('10' - 5);
console.log('10' * 5);

Результат:

5
50

Но лучше не строить код на таких догадках. Если нужно число, преобразуйте значение явно.

Итого

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

  • +, -, * и / нужны для основных математических действий.
  • % возвращает остаток от деления.
  • ** возводит число в степень.
  • Унарный - меняет знак числа, а унарный + пытается преобразовать значение в число.
  • Умножение и деление выполняются раньше сложения и вычитания.
  • Оператор + со строками может выполнять склеивание, а не сложение.