skip to main content

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

js

Кратко 🔗

Логические операторы помогают составлять сложные логические условия, которые часто нужны при ветвлении с помощью if...else.

Как пишется 🔗

И, && 🔗

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

В описании два условия, которые должны одновременно быть верными:

  • пользователь должен быть зарегистрирован
  • количество покупок должно быть больше одной

Если одно из условий, или оба сразу неверны, то цену показывать не нужно.

Именно по такому принципу работает оператор логическое И, пишется &&. Если соединить с его помощью два выражения, то результат будет равен истине только тогда, когда оба выражения истинны:

if (isRegistered === true && orders > 1) {
// показываем цены
}

See the Pen Логическое И by Nikolai Lopin (@Lopinopulos) on CodePen.

Обычно для того, чтобы понять, как работают логические операторы, рисуют таблицу истинности. В ячейках — итоговое значение операции при соответствующих операндах:

&&truefalse
truetruefalse
falsefalsefalse

ИЛИ, || 🔗

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

Чтобы написать такое составное условие, воспользуйся оператором логического ИЛИ, обозначается как две вертикальные черты ||. Логическое или вернет true, если хотя бы одно из условий true.

Погенерируй гостей в демо и посмотри, как отрабатывает условие, которое записано так:

if (hasTicket || isInvited) { ... }

See the Pen Логическое ИЛИ by Nikolai Lopin (@Lopinopulos) on CodePen.

``truefalse
truetruetrue
falsetruefalse

НЕ ! 🔗

Оператор «логическое НЕ» превращает true в false и наоборот.

Он записывается в виде восклицательного знака ! перед операндом: !операнд . Чаще всего это переменная. Например, !myVariable . Операторы, которые производят операцию над одним операндом называются унарными.

Например, мы можем предлагать купить билет посетителю без билета:

if (!hasTicket) {
// купи билет, дорогой!
}