// Синтаксис: условие ? значение_если_true : значение_если_false
let age = 18;
let status = age >= 18 ? "взрослый" : "ребенок";
console.log(status); // "взрослый"
// Можно использовать для присваивания
let price = 100;
let discount = price > 50 ? 10 : 0;
let finalPrice = price - discount;
console.log(finalPrice); // 90
// Вложенные тернарные операторы (снижает читаемость)
let score = 85;
let grade = score >= 90 ? "5" :
score >= 80 ? "4" :
score >= 70 ? "5" :
score >= 60 ? "2" : "1";
console.log(grade); // "4"
// Альтернатива с if-else
if (score >= 90) {
grade = "A";
} else if (score >= 80) {
grade = "B";
} // и т.д.Конструкция if...else — одна из фундаментальных конструкций в программировании. Она позволяет выполнять различные действия в зависимости от выполнения условий.
Простая аналогия из жизни: «Если идет дождь, то возьми зонт, иначе возьми солнечные очки».
Базовый синтаксис
Простой if
if (условие) {
// код, который выполнится, если условие истинно (true)
}
let temperature = 25;
if (temperature > 20) {
console.log("На улице тепло, можно идти без куртки");
}if...else
if (условие) {
// код, если условие истинно
} else {
// код, если условие ложно
}
let age = 17;
if (age >= 18) {
console.log("Доступ разрешен");
} else {
console.log("Доступ запрещен: вам нет 18 лет");
}if...else if...else (цепочка условий)
if (условие1) {
// код, если условие1 истинно
} else if (условие2) {
// код, если условие1 ложно, но условие2 истинно
} else if (условие3) {
// код, если условие1 и условие2 ложны, но условие3 истинно
} else {
// код, если все условия ложны
}Логические выражения
let x = 10;
let y = 5;
// Простые сравнения
if (x > y) { /* ... */ }
if (x < y) { /* ... */ }
if (x >= y) { /* ... */ }
if (x <= y) { /* ... */ }
if (x === y) { /* ... */ } // строгое равенство
if (x !== y) { /* ... */ } // строгое неравенствоЛогические операторы в условиях
let age = 25;
let hasLicense = true;
// И (AND) - &&
if (age >= 18 && hasLicense) {
console.log("Можно водить машину");
}
// ИЛИ (OR) - ||
if (age < 14 || age > 70) {
console.log("Можно получить скидку");
}
// НЕ (NOT) - !
let isRaining = false;
if (!isRaining) {
console.log("Можно идти гулять");
}Сложные условия
let time = 14;
let day = "понедельник";
// Комбинирование операторов
if (time >= 9 && time < 18 && day !== "суббота" && day !== "воскресенье") {
console.log("Офис открыт");
}Truthy и Falsy значения
JavaScript автоматически преобразует значения к логическому типу в условиях:
Falsy значения (преобразуются в false):
- false
- 0
- "" (пустая строка)
- null
- undefined
- NaN
Truthy значения (преобразуются в true):
Все остальные, включая:
- "0" (строка с нулем)
- "false" (строка)
- [] (пустой массив)
- {} (пустой объект)
- любое ненулевое число
let name = ""; // пустая строка - falsy
if (name) {
console.log("Привет, " + name);
} else {
console.log("Имя не указано"); // Выполнится это
}
// Проверка существования переменной
let user;
if (user) {
console.log("Пользователь существует");
} else {
console.log("Пользователь не определен"); // Выполнится это
}Вложенные условия
let age = 25;
let hasLicense = true;
let hasCar = false;
if (age >= 18) {
if (hasLicense) {
if (hasCar) {
console.log("Можно ехать на машине");
} else {
console.log("Можно водить, но машины нет");
}
} else {
console.log("Нужно получить права");
}
} else {
console.log("Слишком молод для вождения");
}
// Альтернатива с логическими операторами (более читаемая)
if (age >= 18 && hasLicense && hasCar) {
console.log("Можно ехать на машине");
} else if (age >= 18 && hasLicense) {
console.log("Можно водить, но машины нет");
} else if (age >= 18) {
console.log("Нужно получить права");
} else {
console.log("Слишком молод для вождения");
}Оператор switch (для множества сравнений одного значения)
let day = "понедельник";
let dayType;
switch (day) {
case "понедельник":
case "вторник":
case "среда":
case "четверг":
case "пятница":
dayType = "рабочий день";
break;
case "суббота":
case "воскресенье":
dayType = "выходной";
break;
default:
dayType = "неизвестный день";
}
// Эквивалентно с if...else if:
if (day === "понедельник" || day === "вторник" || day === "среда" ||
day === "четверг" || day === "пятница") {
dayType = "рабочий день";
} else if (day === "суббота" || day === "воскресенье") {
dayType = "выходной";
} else {
dayType = "неизвестный день";
}