Логические операторы
Урок: Логические операторы
Введение
Когда мы пишем программу, нам часто нужно учитывать не одно условие, а сразу несколько. Например, пользователь может получить доступ к странице только если он авторизован и ему больше 18 лет. Или кнопка должна работать, если форма заполнена или есть сохранённые данные.
В обычной жизни мы тоже так думаем: «если выполнено это и это» «если выполнено это или это» «если это не так»
Такие рассуждения и есть логика. В программировании она выражается с помощью логических операторов.
Операторы сравнения дают нам отдельные ответы — true или false. А логические операторы позволяют комбинировать эти ответы, строить более сложные условия и управлять поведением программы.
Без них невозможно написать ни одну более-менее сложную проверку.
Как работают логические операторы
Логические операторы работают с логическими значениями — true и false.
Они позволяют объединять несколько условий в одно выражение.
Рассмотрим простой пример:
let age = 20;
let hasAccess = true;
if (age > 18 && hasAccess) {
console.log('Доступ разрешён');
}
Здесь используется оператор && (логическое «и»).
Выражение age > 18 && hasAccess означает:
«возраст больше 18 и одновременно есть доступ».
Если хотя бы одно условие будет false, всё выражение станет false.
Логическое «и» (&&)
Оператор && возвращает true, только если оба условия истинны.
console.log(true && true); // true
console.log(true && false); // false
console.log(false && true); // false
Рассмотрим практический пример:
let age = 16;
let hasPermission = true;
if (age >= 18 && hasPermission) {
console.log('Можно войти');
} else {
console.log('Доступ запрещён');
}
Здесь:
age >= 18→ falsehasPermission→ true
Но так как используется &&, итог — false, и доступ не будет разрешён.
Оператор && полезен, когда нужно проверить выполнение всех условий сразу.
Логическое «или» (||)
Оператор || возвращает true, если хотя бы одно условие истинно.
console.log(true || false); // true
console.log(false || false); // false
Пример:
let isAdmin = false;
let isModerator = true;
if (isAdmin || isModerator) {
console.log('Доступ к панели есть');
}
Здесь достаточно, чтобы пользователь был либо администратором, либо модератором.
Оператор || используется, когда есть альтернативные варианты.
Логическое «не» (!)
Оператор ! инвертирует значение.
console.log(!true); // false
console.log(!false); // true
Пример:
let isLoggedIn = false;
if (!isLoggedIn) {
console.log('Пожалуйста, войдите в систему');
}
Здесь !isLoggedIn означает «не авторизован».
Этот оператор часто используется для проверки отрицательных условий.
Как логические операторы работают вместе
Операторы можно комбинировать:
let age = 20;
let isStudent = true;
if (age < 25 && isStudent) {
console.log('Есть скидка');
}
Здесь проверяется сразу два условия.
Можно строить более сложные выражения:
let isAdmin = false;
let isModerator = false;
let isOwner = true;
if (isAdmin || isModerator || isOwner) {
console.log('Доступ разрешён');
}
Такие конструкции встречаются очень часто, особенно в реальных приложениях.
Неочевидное поведение операторов
В JavaScript логические операторы работают не только с true и false, но и с другими значениями.
Рассмотрим пример:
console.log(0 || 'default');
Результат будет "default".
Почему? Потому что 0 считается «ложным» значением.
Ещё пример:
console.log('Hello' && 123);
Результат будет 123.
Это происходит потому, что:
&&возвращает последнее истинное значение;||возвращает первое истинное значение.
Это часто используется на практике:
let userName = null;
let name = userName || 'Гость';
console.log(name);
Если userName пустой (null), используется значение по умолчанию.
Где это используется на практике
Логические операторы используются везде, где есть условия.
Когда проверяется форма — объединяются несколько проверок.
Когда реализуется доступ — учитываются роли пользователя.
Когда нужно задать значение по умолчанию — используется ||.
Когда нужно проверить отрицание — используется !.
Они позволяют описывать сложную логику простыми выражениями.
Без них невозможно управлять поведением программы.
Итоговое понимание
Логические операторы — это инструмент, который позволяет объединять условия и строить сложную логику.
Они работают с результатами сравнений и помогают программе принимать решения не по одному признаку, а сразу по нескольким.
Ключевая идея — научиться видеть условия как комбинации: «и», «или», «не». Именно так строится логика в коде.
Если операторы сравнения — это отдельные проверки, то логические операторы — это способ собрать их в единую систему принятия решений.