Логические операторы

Урок: Логические операторы

Введение

Когда мы пишем программу, нам часто нужно учитывать не одно условие, а сразу несколько. Например, пользователь может получить доступ к странице только если он авторизован и ему больше 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 → false
  • hasPermission → 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), используется значение по умолчанию.


Где это используется на практике

Логические операторы используются везде, где есть условия.

Когда проверяется форма — объединяются несколько проверок. Когда реализуется доступ — учитываются роли пользователя. Когда нужно задать значение по умолчанию — используется ||. Когда нужно проверить отрицание — используется !.

Они позволяют описывать сложную логику простыми выражениями.

Без них невозможно управлять поведением программы.


Итоговое понимание

Логические операторы — это инструмент, который позволяет объединять условия и строить сложную логику.

Они работают с результатами сравнений и помогают программе принимать решения не по одному признаку, а сразу по нескольким.

Ключевая идея — научиться видеть условия как комбинации: «и», «или», «не». Именно так строится логика в коде.

Если операторы сравнения — это отдельные проверки, то логические операторы — это способ собрать их в единую систему принятия решений.