Операторы и условия
Как сравнивать значения и выбирать, какие инструкции выполнить.
Оператор выполняет действие над значениями. Например, арифметические операторы считают, а операторы сравнения отвечают true или false.
const price = 750;
const discount = 100;
const finalPrice = price - discount;
console.log(finalPrice); // 650Считаем и обновляем значения
+, -, * и / выполняют обычные арифметические действия. % возвращает остаток от деления: 10 % 3 даст 1. Так удобно проверить четность числа: остаток от деления четного числа на 2 равен нулю.
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". Такое преобразование новичку часто трудно заметить.
console.log(5 == "5"); // true: значения привели к совместимому виду.
console.log(5 === "5"); // false: число и строка имеют разные типы.Выбираем ветку через if
if проверяет условие. Если результат true, выполняется первый блок. Иначе выполняется ветка else, если она есть.
const temperature = 38;
if (temperature >= 38) {
console.log("Нужна проверка температуры.");
} else {
console.log("Температура ниже порога.");
}Для нескольких вариантов добавьте else if:
const catState = "голодный";
if (catState === "сытый") {
console.log("Кот отдыхает.");
} else if (catState === "голодный") {
console.log("Пора насыпать корм.");
} else {
console.log("Неизвестное состояние.");
}Логические операторы соединяют проверки: && означает «и», || – «или», ! – «не».
const age = 20;
const hasTicket = true;
if (age >= 18 && hasTicket) {
console.log("Можно войти.");
}Скобки вокруг условий и блоки { } помогают читать ветвления и не запутаться в порядке действий. Операторы и управление потоком выполнения разобраны в руководстве MDN.