К практике
НачальныйJavaScriptifelse
🔀JuniorJavaScriptifelseусловиятернарныйswitch
Условное ветвление: if и ?
if/else, тернарный оператор, switch — как принимать решения в коде.
JSУсловия: if / else / switch / тернарный оператор
Начало
условие?
true
блок true
false
блок else
Конец
if (условие) {
// блок true
} else if (другое) {
// ещё одно условие
} else {
// блок false
}switch — для нескольких значений одной переменной
switch (значение) {
case "a": /* ... */ break;
case "b": /* ... */ break;
default: /* ... */
}Без break выполнение «провалится» в следующий case (fall-through).
Язык примеров:
Шаг 1 из 1Практика
1
if, else if, else
Синтаксис
javascript
if (условие) {
// выполнится если условие truthy
} else if (другоеУсловие) {
// иначе, если это условие truthy
} else {
// во всех остальных случаях
}Пример
javascript
const hour = new Date().getHours();
let greeting;
if (hour < 6) {
greeting = "Ночь";
} else if (hour < 12) {
greeting = "Доброе утро";
} else if (hour < 18) {
greeting = "Добрый день";
} else {
greeting = "Добрый вечер";
}Скобки {} не обязательны для одной строки, но лучше ставить
javascript
// ❌ Опасно — легко сделать ошибку при редактировании
if (x > 0)
console.log("положительное");
console.log("это всегда выведется"); // НЕ часть if!
// ✓ Явно
if (x > 0) {
console.log("положительное");
}Тернарный оператор: условие ? true : false
javascript
// Синтаксис: condition ? valueIfTrue : valueIfFalse
const age = 20;
const status = age >= 18 ? "Взрослый" : "Несовершеннолетний";
// Тернарник — это выражение, можно использовать везде
console.log(`Статус: ${age >= 18 ? "взрослый" : "несовершеннолетний"}`);
// НЕ злоупотребляй вложенным тернарником — нечитаемо:
const grade = score >= 90 ? "A" : score >= 70 ? "B" : score >= 50 ? "C" : "F";
// Лучше функция с if:
function getGrade(score) {
if (score >= 90) return "A";
if (score >= 70) return "B";
if (score >= 50) return "C";
return "F";
}JavaScript
// switch — когда много вариантов для одного значения
const day = new Date().getDay(); // 0=воскресенье, 1=понедельник...
switch (day) {
case 0:
case 6:
console.log("Выходной день");
break;
case 1:
console.log("Понедельник — начало недели");
break;
case 5:
console.log("Пятница — почти выходные!");
break;
default:
console.log("Рабочий день");
}
// Современная альтернатива switch — объект:
const dayType = {
0: "выходной",
6: "выходной",
// остальные undefined → "рабочий"
};
const type = dayType[day] ?? "рабочий";
// Или Map для сложных случаев:
const actions = new Map([
[0, () => restDay()],
[6, () => restDay()],
[5, () => fridayMode()],
]);
(actions.get(day) ?? defaultAction)();Что произойдёт в switch без `break`?