Логические операторы
Сравнение дало один ответ «да/нет». В реальной работе часто нужны несколько сразу: возраст достаточен и балл высок? участник или гость допущен? Инструменты, которые соединяют или переворачивают эти ответы, — логические операторы: &&, || и !. Truthy и falsy вы уже знаете; здесь учитесь читать три повседневных символа и доверять boolean, который они дают.
Что такое логический оператор?
Логический оператор работает с boolean-подобными значениями. Он не записывает в имя (=) и не спрашивает «то же значение?» (===). Он объединяет или переворачивает результаты да/нет. После true && false результат — false. После true || false — true. После !false — true. Этот boolean можно вывести в консоль, сохранить в переменной или записать на страницу.
Операторы одним взглядом
📊 Повседневные логические операторы
| Оператор | Как читать | Типичный результат |
|---|---|---|
&& |
обе стороны проходят? | true && true → true |
! |
перевернуть да/нет | !false → true |
Держите эту шпаргалку рядом. Новичкам лучше кормить операторы ясными boolean из сравнений (age >= 18) или литералов true / false. Другие значения тоже считаются truthy или falsy, но честное да/нет снижает ошибки.
console.log(true && true);
console.log(true && false);
console.log(false && true);
console.log(false && false);
let ok = true;
console.log(ok && true);
&& нужны обе стороны
Два амперсанда значат «и». Обе стороны должны быть truthy, чтобы всё выражение было truthy. Если левая сторона падает, комбинированный ответ уже «нет» — «половинчатого да» нет.
Консоль печатает true, false, false, false, true. Только первая и последняя строки проходят обе стороны. Представьте дверь с двумя замками: оба ключа должны подойти.
console.log(true || true);
console.log(true || false);
console.log(false || true);
console.log(false || false);
let guest = false;
console.log(guest || true);
|| достаточно одной стороны
Две вертикальные черты значат «или». Если любая сторона truthy, всё выражение truthy. false получается только когда обе стороны падают.
Вы видите true, true, true, false, true. Только четвёртая строка — полный провал. Одного открытого пути хватает — как дверь с двумя отдельными ключами, каждый из которых открывает сам.
console.log(!true);
console.log(!false);
let ready = false;
console.log(!ready);
let open = true;
console.log(!open);
! переворачивает ответ
Один ! впереди значит «не». Truthy становится falsy и наоборот. !ready удобен, когда хотите спросить «ещё не готово?» без длинного сравнения заново.
Консоль печатает false, true, true, false. ready было false, значит !ready — true. open было true, значит !open — false.
let age = 20;
let score = 75;
console.log(age >= 18 && score >= 60);
console.log(age >= 18 && score >= 90);
let member = false;
let pass = true;
console.log(member || pass);
Соедините сравнения в одну проверку
Повседневная логика почти всегда оборачивает результаты сравнения. age >= 18 && score >= 60 задаёт два вопроса о ранге и соединяет их «и». member || pass спрашивает, открыт ли хоть один путь. Вопросы оставляйте === / >=; ответы соединяют && / ||.
let age = 20;
let score = 75;
let allowed = age >= 18 && score >= 60;
console.log(allowed);
let member = false;
let guestOk = true;
let enter = member || guestOk;
console.log(enter);
allowed равно true (обе проверки проходят). enter равно true, потому что путь гостя открыт, хотя member — false. Логическое выражение уже дало boolean — вы лишь дали ему имя.
Показать ворота на странице
Вычислите один комбинированный boolean и запишите короткую метку на страницу.
<!DOCTYPE html>
<html>
<head>
<title>Logical — page gate</title>
</head>
<body>
<p id="out">…</p>
<script>
let age = 20;
let score = 75;
let allowed = age >= 18 && score >= 60;
let box = document.getElementById("out");
box.textContent = "allowed=" + allowed;
</script>
</body>
</html>
age равно 20, score равно 75, обе стороны && проходят, страница показывает allowed=true. Опустите score до 50, обновите — должно быть allowed=false. Позже ветвление пойдёт через if; это демо только печатает комбинированное да/нет.
Попробуйте сами
- Выведите
true && falseиtrue || false. - Выведите
!falseи!true. - Задайте
let age = 16и выведитеage >= 18 && age < 65. - Задайте
let age = 30и выведите ту же проверку диапазона. - Сравните
false || trueрядом сfalse && true. - В HTML-демо меняйте только
score, обновите и прочитайте новый текстallowed=.
Частые ошибки
- Писать один
&или|— новичкам нужны&&и|| - Использовать
&&, когда имелось в виду===(соединить vs «равно?») - Ждать, что
&&само сравнит два числа — сначала оберните каждую сторону в сравнение - Забывать, что
!переворачивает весь boolean перед собой - Кормить мутными значениями до спокойного чтения truthy/falsy — начинайте с ясных сравнений
Кратко
- Логические операторы соединяют или переворачивают результаты да/нет
&&нужны обе стороны;||хотя бы одна;!переворачивает- Для повседневных проверок соединяйте результаты сравнения (
age >= 18 && score >= 60) - Храните boolean, если нужно имя; покажите на странице, если нужна метка
- Символы сравнения и логики — разные роли
- Дальше: if-else — этими boolean выбирать, какой код выполнить
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху