26. Логические выражения в JavaScript — Выражения и операторы — codebra
Логические операторы очень часто используются в условных конструкциях (см. пример 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 */
Похожие уроки и записи блога
Выражения отношений в JavaScriptВыражения и операторы
Первое знакомство с PythonЗнакомство с Python
Условная инструкция if-elif-else в PythonЗнакомство с Python
Типы данных в PythonЗнакомство с Python
Генераторы и оператор yield в PythonЗнакомство с Python
Обработка исключений (try/except) в PythonЗнакомство с Python
Отношения между множествами и операции над нимиЗнакомство с Python
Функциональное программирование: map, filter и reduceЗнакомство с Python
Работа с файлами в Python Знакомство с Python
Предыдущий урок «25. Выражения отношений в JavaScript» Следующий урок «27. Выражения присваивания в JavaScript»
JavaScript. Логические операторы
Содержание
- 1 Логическое И (AND) в JS
- 2 Логическое ИЛИ (OR) в JS
- 3 Логическое НЕ (NOT) в JS
Логические операторы в JavaScript очень часто используются в условных выражениях if…else. Есть три основных логических оператора:
- И (AND) — &&
- ИЛИ (OR) —
||
- НЕ (NOT) —
!
Логическое И (AND) в JS
Логическое И записывается двумя амперсандами &&
и возвращает true
, если оба выражения (слева и справа) вернут true
. Т.е. и значение слева, и значение справа должны быть true
, тогда оператор вернет true
.
true && true
Оператор И в JavaScript выполняет сравнение слева направо, преобразовывает выражение (операнд) в логическое значение и вернет false
как только одно из значений будет false
let bool1 = false, bool2 = true;
let result = bool1 && bool2; // false
Как только выполнение кода дойдет до bool1
, а эта переменная равняется false
, тогда код дальше выполняться не будет, т. к. не важно что будет дальше, потому что первое значение ложь
.
Вот несколько примеров и результат, что будет возвращено в итоге:
let pr1 = true && true; // true
let pr2 = true && false; // false
let pr3 = false && true; // false
let pr4 = 'Hello' && 'World'; // true, т.к. строковое значение (не пустое) вернет true
let pr5 = '' && 'Hello'; // false
let pr6 = 1 && 0; // false
Можно также сравнивать несколько значений:
val1 && val2 && val3
Так как данный оператор приводит к логическому выражению, мы можем передавать разные данные (строки, числа, функцию, которая будет что-то возвращать и так далее).
let val1 = ''; // пустая строка, это false
let arr1 = [1, 2];
if (val1 && arr1.length) {}
В примере выше, мы в условие передаем пустую строку и проверяем длину массива, и т.к. пустая строка нам вернет false в булевом значении, у нас данное условие не сработает.
Логическое ИЛИ (OR) в JS
Логический оператор ИЛИ будет возвращать true
, если хоть одно из значений (слева или справа) будет истинно, т.е. будет true
:
let result = true || false; // result = true;
Также как и оператор И, он приводит операнды слева и справа к булевому значению.
let pr1 = true || true; // true
let pr2 = true || false; // true
let pr3 = false || true; // true
let pr4 = 'Hello' || 'World'; // true, т.к. строковое значение (не пустое) вернет true
let pr5 = '' || 'Hello'; // true
let pr6 = 1 || 0; // true
Также с данным оператором можно проверять несколько значений
let val1 = 1, val2 = 0, val3 = 'string';
if (val1 || val2 || val3) {}
Данное условие будет выполнено, т.к. хоть одно из значений будет true
(в нашем случае val1 = 1
— true, val3 = 'string'
— тоже true)
Логическое НЕ (NOT) в JS
Оператор НЕ работает следующим образом:
- Приводит выражение к булевому значению (true/false)
- Затем делает отрицание, т. е. на
true
возвращаетfalse
, а наfalse
возвращаетtrue
.
let bool1 = !true; // будет равно false
let bool2 = !false; // будет равно true
let isLoading = false;
if (!isLoading) {
// Если данные уже загружены, тогда делай следующее...
}
Оператор отрицания также часто используется в конструкции if…else. Допустим у вас есть приложение, при загрузке данных вы переменной isLoading
присваиваете значение true
(например, для отображения индикатора загрузки) и как только данные получены, хотите их отобразить, тогда вам нужно проверить, что переменная isLoading
не равняется true
, т.е. загрузка данных завершена. Условие выше аналогично следующей записи:
if (isLoading === false) {}
Ваши вопросы и комментарии:
JavaScript — логическая логика
JavaScript — логическая логикаСм. раздел 5G книги.
Эта страница переведена на французский язык.
Булева логика используется в большинстве языков программирования. включая JavaScript. Очень полезно знать хотя бы немного об этом. В JavaScript, он вам в основном нужен в операторах if().
Это всего лишь краткое и грязное объяснение, написанное для новых программистов. В Кроме того, он полностью основан на использовании булевой логики в JavaScript.
Сначала я обсуждаю основную теорию, затем ввожу И,
ИЛИ и НЕ в JavaScript. Затем я представляю булев генератор
с помощью которого вы можете создавать свои собственные логические операторы и смотреть, как они оцениваются.
После этого я объясню, когда JavaScript делает переменную ложной и, наконец,
как узнать, существует ли объект. Когда ты все это понял, ты
может работать с булевой логикой в JavaScript.
Основная теория
В булевой логике оператор может иметь два значения, истина
или ложь
. Когда
используя булеву логику в философии, утверждение может быть предложением, например
Сегодня идет дождь.
В более приземленных приложениях, таких как JavaScript, выражение выглядит примерно так:
х == 4
Оба утверждения могут быть как истинными, так и ложными. При написании программы часто бывает необходимо
чтобы увидеть, является ли утверждение истинным или ложным. Обычно это делает специалист
оператор если(). Если заявление х == 4
верно, то сделайте что-нибудь:
если (х==4) { сделай что-нибудь }
Все это неудивительно. Булева логика, однако, также предлагает возможности для оценки всю строку утверждений и посмотреть, является ли вся строка истинной или ложной. Нравится:
Сегодня идет дождь И мои ноги промокают
В булевой логике это более длинное утверждение истинно, если сегодня идет дождь
верно И у меня промокли ноги
это правда.
Сегодня идет дождь ИЛИ у меня промокли ноги
В булевой логике это утверждение верно, если сегодня идет дождь
верно ИЛИ если ваши ноги промокли
верно
true ИЛИ, если оба утверждения верны.
Это также очень полезно при написании программ. Например, предположим, что вы хотите что-то сделать, если x==4 ИЛИ y==1. Тогда вы пишете:
если (х==4 || у==1) { сделай что-нибудь }
Утверждение (x==4 || y==1)
верно
, когда x равно 4 ИЛИ y равно 1.
И, ИЛИ и НЕ
Для целей JavaScript вам необходимо знать И, ИЛИ и НЕ:
- И (
&&
): Истинно, когда оба элемента истинны.
Пример: (x==4 && y==1). - ИЛИ (
||
): Истинно, если истинно хотя бы один из элементов.
Пример: (x==4 || y==1). - NOT (
!
): переключает утверждение с истинного на ложное или с ложного на истинное.
Пример: (x==4 || !(y==1)). Этот пример верен, если x равно 4 ИЛИ y НЕ равно 1.
Булева логика также содержит оператор XOR, который верен, когда ровно один утверждение верно (но не оба). JavaScript не поддерживает логическое XOR.
Когда вы используете только два оператора, все очень просто. Это становится сложнее, если вы хотите используйте три или более утверждений, например:
если (x==4 && (!(y==1) || z==0) { сделай что-нибудь }
Как и в математике, вычисляется бит, находящийся в скобках ()
.
первый. Таким образом, этот пример верен, и код выполняется, если x равно 4 И (y НЕ равно 1 ИЛИ z равно 0 ИЛИ и то, и другое).
Попробуйте
На первый взгляд это кажется ужасно сложным. Я мог бы продолжать писать о том, как Булева логика работает, но лучше попробовать самому.
В таблице ниже вы видите три утверждения, X, Y и Z. Все они могут быть как истинными, так и ложными. Заполните И / ИЛИ, НЕ, где скобки и значения X, Y и Z, затем нажмите Boole() , чтобы увидеть, как ваше утверждение оценивает.
Поиграйте с ним, пока не начнете понимать, что это такое. Позже вы можете попытаться сделать прогноз, прежде чем нажмете Boole() .
Проверка переменной
Выше мы видели, что мы можем использовать булеву логику в операторе типа
.если (x==4 && (!(y==1) || z==0) { сделай что-нибудь }
Второй способ использования булевой логики — посмотреть, существует что-то или нет. Например
если (!х) { сделай что-нибудь }
В этом примере код выполняется, если x
НЕ существует ( x=false
).
х ложно
- , если x равно нулю (
x=0
). Таким образом, если результат какого-либо вычисления состоит в том, что x равно нулю, x является ложным, и код выполняется. - , если x — пустая строка (
x=''
). Итак, если x — строка, но она была создана пусто по некоторым вычислениям, x ложно, и код выполняется. - , если вы сделали x false (
x=false
). Теперь x — логическая переменная, и поскольку она false код выполняется.
Во всех остальных случаях x истинно и код не выполняется. Обратите внимание, что вы должны определить переменную х
где-то или браузер будет жаловаться.
Обнаружение поддержки
Наконец, утверждение ложно, если оно ищет свойство, массив или метод JavaScript,
не существует в браузере. Например, чтобы узнать, существует ли метод document.getSelection()
,
я делаю
если (document.getSelection) { сделать что-нибудь с document.getSelection() }
Если метод не существует, сценарий, использующий этот метод, не выполняется. Это безотказный метод избежать ошибок JavaScript.
Дополнительные сведения об этой важной функции JavaScript см. Страница обнаружения объектов.
Как проверить логическое значение в JavaScript | by Dr. Derek Austin 🥳
Логические значения,
true
или false
, являются одними из самых простых примитивов для проверки в JavaScript — просто используйте оператор типа
. Photo by Wouter Meijering on Unsplash0016 true или false
и тип
логическое значение всегда "логическое"
.«Тип Boolean — Boolean представляет логическую сущность и может иметь два значения:
true
иfalse
. См. Boolean иBoolean
для более подробной информации». — MDN Docs
Обычно мы используем ключевые слова true
и false
для обозначения логических значений, хотя иногда мы полагаемся на истинные и ложные значения, которые я объясню позже.
Следующий код показывает, как проверить логические значения в JavaScript:
Для доступа к примитивному типу данных, логическому, мы обычно используем ключевые слова true
и false
, которые зарезервированы для логических значений.
Однако мы также можем оценивать другие переменные как значения true
или false
.
«В дополнение к примитивному типу
boolean
JavaScript также предоставляет вам глобальныйBoolean()
, с буквойB
в верхнем регистре, для приведения значения другого типа кboolean
. одним из 3-х способов:
- Используя функцию-оболочку
Boolean()
.- Поставив два восклицательных знака
!!
(логический оператор НЕ!
, дважды) перед любым выражением, которое вызываетBoolean()
Функция-оболочка.- Помещение любого выражения внутри условного оператора, например, оператора
if
, вопросительного знака?
оператор или цикл — с И&&
или ИЛИ||
.Вот примеры приведения выражений к логическим значениям в JavaScript:
В условных выражениях значения, которые оцениваются как
false
, называются false значениями , а все остальное в JavaScript равно truey значения , которые оцениваются какtrue
.Фальшивые значения в JavaScript —
False
,0
,-0
,0N
,NULL
,Неопределенные
,NAN
и пустая строка"
;NAN
и пустая строка"
; все остальное является истинным значением.Все объекты правдивы, включая пустые объекты
{}
и массивы[]
.Следующий код дает несколько примеров истинных и ложных значений:
Если вам нужно убедиться, что у вас есть логическое примитивное значение, а не просто ложное значение, проверьте тип переменной JavaScript, используя
typeof
.Только
true
иfalse
имеют тип, равный
"boolean"
.Любое выражение JavaScript можно привести к логическому примитивному типу с помощью функции-оболочки
Boolean()
, доступной для глобального объекта.Булево значение
() 9Оболочку 0017 также можно вызвать с помощью
!!
( Взрыв! Взрыв! ).И это действительно все, что нужно знать для проверки логического значения! 😊😂❤️😍👌
Логическое значение названо в честь английского математика Джорджа Буля, который был пионером в области математической логики. — MDN Docs
- Патрик Дивайн разбирает двойные удары (
!!
) в своем блоге на Medium:Javascript «Bang, Bang. Я застрелил тебя »- Использование двойных ударов (!!) в Javascript.
Как не попасть под удар при использовании двойного удара
medium.com
- Мариус Шульц объясняет Javascript
&&
(AND) и||
(ИЛИ) в своем блоге:&& и || Операторы в JavaScript
Подобно другим C-подобным языкам программирования, JavaScript определяет два оператора && и || которые представляют…
mariusschulz.com
- Брэндон Морелли объясняет
&&, ||
и!
(НЕ) в Codeburst.io:Изучение JavaScript: логическое И / ИЛИ / НЕ
Изучение и понимание логических операторов JavaScript: И (&&), ИЛИ (||) и НЕ (!)
codeburst.io
- Крис Лав обсуждает «волшебство», которым является
!! Оператор
в своем блоге:Что такое !! (не не) оператор в JavaScript?
На днях я копался в JavaScript, чтобы выяснить, как работает сторонняя библиотека.