Посмотреть все уроки курса
Выбрать другой урок из курса
Поиск по сайту
Теория урока

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

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

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

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

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

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

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

Пример 2
a == 1 && b == 2
(a == 1) && (b == 2)

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

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

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

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

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

Пример 4
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 */
<
×
>
Впервые на сайте Codebra?

Извините за это всплывающее окно, меня они тоже раздражают.

Образовательный ресурс codebra.ru полностью посвящен программированию. Все курсы и уроки находятся на главной странице. Ради интереса можете посмотреть на содержимое курсов по Python, HTML и CSS, JavaScript, C++ и другие, размещенные на главной странице.

Если что-то не нашли, то воспользуйтесь поиском по сайту, который находится на главной странице в самом верху.

Удачи в обучении!

Закрыть окно