Условия
Принятие решений в коде с помощью if, else и switch
Цель урока
В этом уроке ты научишься:
- Выполнять код по условию
- Использовать
if,else if,else - Понимать truthy и falsy значения
- Использовать
switchи тернарный оператор
Оператор if
Выполняет код, если условие истинно:
let age = 18;
if (age >= 18) {
console.log("Доступ разрешён");
}if...else
Выбор между двумя вариантами:
let age = 16;
if (age >= 18) {
console.log("Взрослый");
} else {
console.log("Несовершеннолетний");
}
// "Несовершеннолетний"if...else if...else
Несколько условий:
let score = 75;
if (score >= 90) {
console.log("Отлично");
} else if (score >= 70) {
console.log("Хорошо");
} else if (score >= 50) {
console.log("Удовлетворительно");
} else {
console.log("Неудовлетворительно");
}
// "Хорошо"Порядок важен
Проверка идёт сверху вниз. Первое истинное условие выполняется, остальные пропускаются.
Truthy и Falsy
JavaScript автоматически преобразует значения в true или false.
Falsy значения (становятся false)
if (false) { } // false
if (0) { } // false
if (-0) { } // false
if ("") { } // false (пустая строка)
if (null) { } // false
if (undefined) { } // false
if (NaN) { } // falseTruthy значения (становятся true)
if (true) { } // true
if (1) { } // true
if (-1) { } // true
if ("text") { } // true (непустая строка)
if ([]) { } // true (пустой массив!)
if ({}) { } // true (пустой объект!)Практическое применение
let username = "";
if (username) {
console.log("Привет, " + username);
} else {
console.log("Привет, Гость");
}
// "Привет, Гость"Тернарный оператор
Короткая форма if...else:
// Синтаксис: условие ? еслиTrue : еслиFalse
let age = 20;
let status = age >= 18 ? "взрослый" : "ребёнок";
console.log(status); // "взрослый"Когда использовать
// Хорошо — простое условие
let message = isLoggedIn ? "Выйти" : "Войти";
// Плохо — сложная логика
let result = a > b ? (c > d ? "A" : "B") : (e > f ? "C" : "D");Оператор switch
Проверка одного значения на несколько вариантов:
let day = "понедельник";
switch (day) {
case "понедельник":
console.log("Начало недели");
break;
case "пятница":
console.log("Почти выходные");
break;
case "суббота":
case "воскресенье":
console.log("Выходной");
break;
default:
console.log("Обычный день");
}Не забывай break
Без break выполнение продолжится в следующий case.
switch vs if
// switch — когда проверяем одно значение
switch (status) {
case "active": ...
case "pending": ...
}
// if — когда сложные условия
if (age >= 18 && hasLicense && !isBanned) { ... }Логические операторы в условиях
Короткое замыкание
// && — возвращает первое falsy или последнее значение
console.log(1 && 2 && 3); // 3
console.log(1 && 0 && 3); // 0
console.log(null && "hello"); // null
// || — возвращает первое truthy или последнее значение
console.log(0 || "" || "hi"); // "hi"
console.log(1 || 2); // 1Практическое применение
// Значение по умолчанию
let name = username || "Гость";
// Условное выполнение
isAdmin && showAdminPanel();
// Безопасный доступ
let city = user && user.address && user.address.city;
// Или современный способ:
let city = user?.address?.city;Итого
| Конструкция | Когда использовать |
|---|---|
if | Одно условие |
if...else | Два варианта |
if...else if | Несколько условий |
switch | Много вариантов одного значения |
? : | Простое присваивание |
Практика
Задание 1: Проверка возраста
Задача: Выведи категорию: "ребёнок" (< 12), "подросток" (12-17), "взрослый" (18+).
подросток
Задание 2: Truthy/Falsy
Задача: Выведи "Есть данные" если массив не пустой.
Есть данные
Задание 3: Тернарный оператор
Задача: Используя тернарный оператор, определи чётность числа.
нечётное
Задание 4: switch
Задача: По коду ошибки выведи сообщение: 404 → "Не найдено", 500 → "Ошибка сервера", остальное → "Неизвестная ошибка".
Не найдено
Проверь себя
- Какие значения являются falsy?
- Что вернёт
[] ? "yes" : "no"? - Зачем нужен
breakвswitch? - Когда лучше использовать тернарный оператор?