Codebra
28 января 2026 в 11:46

Урок 25. Логические выражения в JavaScript

Логические выражения в JavaScript. Логическое и, или, не.
📝

Внимание! На этой странице вы найдете материал урока из архивного курса по JavaScript. Курс был написан в 2015 и по-прежнему актуален для начинающих веб-разработчиков.

Теоретический материал сохранен в исходном виде, а практические задания с автоматической проверкой вынесены в отдельные роадмапы.

Полный список уроков доступен по тегу Архивный курс по JavaScript и на странице первого урока.

Логические операторы очень часто используются в условных конструкциях (см. пример 0.1). Благодаря логическим операторам можно объединять два выражения в одно более сложное. Эта теория поможет вам в понимании пятого курса по JavaScript сайта codebra.

if (выражение) {
    ...
    тело конструкции
    ...
}

Логический оператор И (&&)

Логическое И возвращает истину (true) только тогда, когда оба операнда имеют значение true. Если один или оба операнда имеют значение false, то оператор вернет false.

a == 1 && b == 2 /* -> если a = 1, b = 2, то true */

Все логические выражения возвращают истину (true) или ложь (false). Операторы отношения имеют более высокий приоритет, чем логические операторы, поэтому следующие две строки равны:

a == 1 && b == 2
(a == 1) && (b == 2)

Логический оператор ИЛИ (||)

Как и оператор &&, || работает с двумя операндами. Если один или оба операнда возвращают true, то оператор возвратит true, а если оба операнда false, то оператор вернет false. Работа этого оператора такова: вначале он проверяет левый операнд, в случае если он вернет true, то и оператор || вернет true (второй операнд проверять не имеет смысла), если первый операнд вернет false, то оператор || вернет значение второго (правого) операнда.

a == 1 || b == 2 /* -> если a = 1 или b = 2, то true */

Логический оператор НЕ (!)

В отличие от предыдущих двух операторов, оператор НЕ (!) помещается перед одиночным операндом (слева от операнда). Он инвертирует логическое значение своего операнда. Если операнд давал истинное (true) значение, то после применения оператора !, операнд вернет ложь (false). Если операнд был false, то после применения оператора !, операнд вернет истину (true). Оператор НЕ (!) имеет высокий приоритет.

var a = true;
document.write(!a) /* -> false */

var a = true, b = false;
a == true && !b == true /* -> true */

/*
 * Вначале проверяется выражение в скобках
 * b вернет истину, a вернет истину, оператор && тоже вернет истину
 * после выражение в скобках инвентируется !()
 * проверяется левый операнд. a вернет истина.
 * b (правый операнд) вернет ложь
 * выражение является ложным -> false
 */
a === true && !(b === false && a === true) /* -> false */

Далее разберемся выражениями присваивания в JavaScript.

📝

Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегу JavaScript.