If и else
Логические операторы дали вам ответ да/нет. Следующий вопрос: какие строки должны выполниться? Если да — один блок, если нет — другой. Этот выбор — if / else / else if. Вы уже умеете собирать boolean; здесь выбираете им путь.
Что делает if?
if смотрит на условие в скобках. Если значение truthy, JavaScript выполняет блок в фигурных скобках сразу после него. Если falsy — этот блок пропускается. else — запасной путь, когда if не сработал. else if добавляет ещё одну проверку перед финальным else.
Ключевые слова одним взглядом
📊 Повседневные части if / else
| Ключевое слово | Обычное чтение | Типичное применение |
|---|---|---|
if |
если это прошло, выполни этот блок | первая проверка |
else if |
иначе, если прошла эта другая проверка… | средние пути |
else |
иначе выполни это | последний запасной вариант |
Держите условие честным: сравнение (age >= 18), логическое соединение (age >= 18 && score >= 60) или понятная boolean-переменная. Работу этого пути пишите внутри { … }.
let age = 20;
if (age >= 18) {
console.log("adult");
}
console.log("done");
if выполняется только при успешной проверке
Здесь age равен 20, поэтому age >= 18 — true, и консоль печатает adult, затем done. Поставьте age в 16 — останется только done: блок if пропущен.
Строка после закрывающей } обычно всегда выполняется (если позже не выйдете из функции). if не останавливает всю программу; он лишь решает, выполнять ли свой блок.
let age = 16;
if (age >= 18) {
console.log("adult");
} else {
console.log("under 18");
}
else закрывает другой путь
Теперь проверка не проходит; JavaScript пропускает первый блок и выполняет else. Вы видите under 18. В простой паре if / else выполняется ровно одна ветка — никогда обе и никогда ни одна.
let score = 75;
if (score >= 90) {
console.log("A");
} else if (score >= 60) {
console.log("pass");
} else {
console.log("retry");
}
else if добавляет средние пути
score равен 75. Первая проверка (>= 90) не проходит. Вторая (>= 60) проходит — вы видите pass, финальный else пропускается. Порядок важен: более строгие диапазоны ставьте раньше, если они пересекаются.
Три отдельных if могли бы выполнить несколько блоков. else if делает пути взаимоисключающими — после первого совпадения цепочка останавливается.
let age = 20;
let score = 75;
if (age >= 18 && score >= 60) {
console.log("allowed");
} else {
console.log("blocked");
}
let ready = false;
if (!ready) {
console.log("wait");
}
Кладите в скобки настоящие проверки
Условие может быть сравнением, логическим выражением или перевёрнутым boolean. age >= 18 && score >= 60 равно true — вы видите allowed. !ready тоже true — ещё и wait. Сначала соберите да/нет; потом пусть if выберет ветку.
let age = 20;
let label;
if (age >= 18) {
label = "adult";
} else {
label = "under 18";
}
console.log(label);
Назовите результат ветки
Иногда нужна строка (или число) из выбора, а не только console.log. Присвойте label в каждой ветке и используйте один раз после. Здесь label становится "adult".
Покажите выбранный путь на странице
Соберите короткое сообщение через if / else и запишите его на страницу.
<!DOCTYPE html>
<html>
<head>
<title>If else — page branch</title>
</head>
<body>
<p id="out">…</p>
<script>
let age = 20;
let msg;
if (age >= 18) {
msg = "adult";
} else {
msg = "under 18";
}
let box = document.getElementById("out");
box.textContent = "status=" + msg;
</script>
</body>
</html>
age равен 20, страница показывает status=adult. Поставьте age в 16, обновите — должен появиться status=under 18. Следующий урок (switch) выбирает среди нескольких фиксированных значений; для повседневных ворот да/нет инструментом остаются if / else.
Попробуйте сами
- Выведите
"ok"внутриif (true)и убедитесь, что печатается. - Напишите
if/elseсlet age = 16и напечатайте"adult"или"under 18". - Соберите цепочку
else ifдля диапазоновscore:A(≥ 90),pass(≥ 60), иначеretry. - Объедините
age >= 18 && score >= 60в одном условииif. - Сохраните строку
labelизif/elseи выведите её один раз. - В HTML-демо измените только
age, обновите страницу и прочитайте новый текстstatus=.
Частые ошибки
- Забыть фигурные скобки
{ }вокруг тела ветки - Написать
if (age = 18)с одним=(присваивание) вместо сравнения - Поставить
elseбез подходящегоifсверху - Несколько отдельных
if, когда нужны взаимоисключающие путиelse if - Проверять диапазоны в неверном порядке (например
>= 60раньше>= 90)
Кратко
ifвыполняет блок, когда условие truthyelseвыполняется, когда этотifне прошёлelse ifдобавляет ещё взаимоисключающие средние пути- Условия обычно — сравнения или логические выражения
- Держите каждую ветку в скобках; сохраняйте метку, если результат нужен позже
- Дальше: switch — выбор среди нескольких фиксированных значений
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху