JS Tower
JavaScript & TypeScriptМодуль 1: Базовый синтаксис

Условия

Принятие решений в коде с помощью 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) { }        // false

Truthy значения (становятся 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+).

Запустите код для проверки
Loading...
Ваш вывод:
Ожидаемый результат:
подросток

Задание 2: Truthy/Falsy

Задача: Выведи "Есть данные" если массив не пустой.

Запустите код для проверки
Loading...
Ваш вывод:
Ожидаемый результат:
Есть данные

Задание 3: Тернарный оператор

Задача: Используя тернарный оператор, определи чётность числа.

Запустите код для проверки
Loading...
Ваш вывод:
Ожидаемый результат:
нечётное

Задание 4: switch

Задача: По коду ошибки выведи сообщение: 404 → "Не найдено", 500 → "Ошибка сервера", остальное → "Неизвестная ошибка".

Запустите код для проверки
Loading...
Ваш вывод:
Ожидаемый результат:
Не найдено

Проверь себя

  1. Какие значения являются falsy?
  2. Что вернёт [] ? "yes" : "no"?
  3. Зачем нужен break в switch?
  4. Когда лучше использовать тернарный оператор?