К содержанию

Операторы и условия

Как сравнивать значения и выбирать, какие инструкции выполнить.

На этой странице

Оператор выполняет действие над значениями. Например, арифметические операторы считают, а операторы сравнения отвечают true или false.

main.js
const price = 750;
const discount = 100;
const finalPrice = price - discount;
 
console.log(finalPrice); // 650

Считаем и обновляем значения

+, -, * и / выполняют обычные арифметические действия. % возвращает остаток от деления: 10 % 3 даст 1. Так удобно проверить четность числа: остаток от деления четного числа на 2 равен нулю.

main.js
let score = 5;
score += 2; // То же, что score = score + 2.
score++; // Увеличить еще на 1.
console.log(score); // 8
console.log(score % 2 === 0); // true

= присваивает значение, а === сравнивает два значения. Это разные действия. Записи +=, -=, *=, /= сокращают присваивание с соответствующей операцией; ++ и -- меняют число на единицу. Когда такая запись непривычна, сначала разворачивайте ее мысленно: score += 2 означает score = score + 2.

Сравниваем значения

Основные операторы сравнения:

ОператорПроверкаПример
===равны ли значения и их типы5 === 5 даёт true
!==различаются ли значение или тип5 !== "5" даёт true
>больше ли первое значениеage > 18
<меньше ли первое значениеscore < 100
>=больше или равноage >= 18
<=меньше или равноscore <= 100

Для сравнения обычно используйте === и !==. Операторы == и != могут сначала автоматически преобразовать значения, например считать число 5 равным строке "5". Такое преобразование новичку часто трудно заметить.

main.js
console.log(5 == "5"); // true: значения привели к совместимому виду.
console.log(5 === "5"); // false: число и строка имеют разные типы.

Выбираем ветку через if

if проверяет условие. Если результат true, выполняется первый блок. Иначе выполняется ветка else, если она есть.

main.js
const temperature = 38;
 
if (temperature >= 38) {
  console.log("Нужна проверка температуры.");
} else {
  console.log("Температура ниже порога.");
}

Для нескольких вариантов добавьте else if:

main.js
const catState = "голодный";
 
if (catState === "сытый") {
  console.log("Кот отдыхает.");
} else if (catState === "голодный") {
  console.log("Пора насыпать корм.");
} else {
  console.log("Неизвестное состояние.");
}

Логические операторы соединяют проверки: && означает «и», || – «или», ! – «не».

main.js
const age = 20;
const hasTicket = true;
 
if (age >= 18 && hasTicket) {
  console.log("Можно войти.");
}

Скобки вокруг условий и блоки { } помогают читать ветвления и не запутаться в порядке действий. Операторы и управление потоком выполнения разобраны в руководстве MDN.