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 — Дока
Кратко
СкопированоЛогические операторы помогают составлять сложные логические условия, которые часто нужны при ветвлении с помощью if
.
❗
При сравнении объектов, массивов и функций, важно учесть их особенность, так как результат сравнения таких типов данных может быть непредсказуемым. Подружиться с особенностями можно в статье «Хранение по ссылке и по значению».
Как пишется
СкопированоИ,
&&
СкопированоИнтернет-магазин показывает цены со скидкой только зарегистрированному пользователю, сделавшему больше одной покупки.
В описании два условия, которые должны одновременно быть верными:
- пользователь должен быть зарегистрирован;
- количество покупок должно быть больше одной.
Если одно из условий, или оба сразу неверны, то цену показывать не нужно.
Именно по такому принципу работает оператор логическое И, пишется &&
. Если соединить с его помощью два выражения, то результат будет равен истине только тогда, когда оба выражения истинны:
if (isRegistered === true && orders > 1) { // показываем цены}
if (isRegistered === true && orders > 1) {
// показываем цены
}
Открыть демо в новой вкладкеОбычно для того, чтобы понять, как работают логические операторы, рисуют таблицу истинности. В ячейках — итоговое значение операции при соответствующих операндах:
&& | true | false |
---|---|---|
true | true | false |
false | false | false |
ИЛИ,
||
СкопированоПредставь, что мы проверяем билеты на концерт. Пропускать нужно людей с билетами, а также тех, кто находится в списке приглашённых. Выполнение любого из этих условий гарантирует попадание на концерт.
Чтобы написать такое составное условие, воспользуйся оператором логического ИЛИ, обозначается как две вертикальные черты ||
. Логическое или вернёт true
, если хотя бы одно из условий true
.
Генерируйте гостей в демо и смотрите, как отрабатывает условие, которое записано так:
if (hasTicket || isInvited) { ... }
if (hasTicket || isInvited) { ... }
Открыть демо в новой вкладке|| | true | false |
---|---|---|
true | true | true |
false | true | false |
НЕ
!
СкопированоОператор «логическое НЕ» превращает true
в false
и наоборот.
Он записывается в виде восклицательного знака !
перед операндом: !операнд
. Чаще всего это переменная. Например, !my
. Операторы, которые производят операцию над одним операндом называются унарными.
Например, мы можем предлагать купить билет посетителю без билета:
if (!hasTicket) { // купи билет, дорогой!}
if (!hasTicket) {
// купи билет, дорогой!
}
На практике
СкопированоСергей Минаков советует
Скопировано🛠 Оператор «ИЛИ» (||
) можно использовать для установки значения по умолчанию, для этого следует воспользоваться следующей конструкцией:
value = value || 'Значение по умолчанию'
value = value || 'Значение по умолчанию'
Или можно использовать сокращённый вариант:
value ||= 'Значение по умолчанию'
value ||= 'Значение по умолчанию'
❗
Нужно помнить, что если в переменную записать undefined
, null
, NaN
, 0
, пустую строку или любое другое значение, которое JavaScript сможет привести к false
, то данная конструкция перезапишет его значением по умолчанию.
В следующем примере пользователю предлагается выбрать поисковой движок и записать его в переменную, но он может отказаться, и тогда мы по умолчанию установим ему Google.
let searchEngine1 = 'Яндекс'let searchEngine2searchEngine1 = searchEngine1 || 'Google'searchEngine2 = searchEngine2 || 'Google'console.log(searchEngine1)// Яндексconsole.log(searchEngine2)// Google (значение по умолчанию)
let searchEngine1 = 'Яндекс'
let searchEngine2
searchEngine1 = searchEngine1 || 'Google'
searchEngine2 = searchEngine2 || 'Google'
console.log(searchEngine1)
// Яндекс
console.log(searchEngine2)
// Google (значение по умолчанию)
Такой способ работает из-за особенности оператора «ИЛИ»: он не приводит значения к типу Boolean
, а просто возвращает то, что стоит левее или правее.
- Если левое значение можно привести к
, то оператор возвращает левое значение. - Если левое значение можно привести к
false
, то оператор возвращает правое значение.
console.log(null || 0)// 0console.log(0 || null)// nullconsole.log('Собака' || 'Кошка')// Собака
console.log(null || 0)
// 0
console.log(0 || null)
// null
console.log('Собака' || 'Кошка')
// Собака
В последнем примере JavaScript приводит левое значение к типу Boolean
и получает true
, из-за чего решает вернуть именно его ('Собака'
), а правое – даже не смотрит.
🛠 Оператор «И» (&&
) можно использовать в React компонентах, когда мы хотим что-то показать или спрятать в зависимости от определённого условия, для этого нужно воспользоваться следующей jsx конструкцией:
<> { condition && <p> Если condition == true, то показываем этот текст. </p> }</>
<>
{
condition &&
<p>
Если condition == true,
то показываем этот текст.
</p>
}
</>
Давайте напишем небольшой компонент, который будет выводить секретное сообщение только тем пользователям, которые ввели правильный пароль:
import React, { useState } from 'react'export default function App() { const [password, setPassword] = useState('') return ( <> <h2>Введите пароль, чтобы увидеть секрет</h2> <label> <span>Пароль</span> <input type="password" value={password} onChange={(e) => setPassword(e.target.value)} /> </label> { password === '123456' && <p>Секрет: Дока – сокращение от «документация»</p> } </> )} import React, { useState } from 'react' export default function App() { const [password, setPassword] = useState('') return ( <> <h2>Введите пароль, чтобы увидеть секрет</h2> <label> <span>Пароль</span> <input type="password" value={password} onChange={(e) => setPassword(e.target.value)} /> </label> { password === '123456' && <p>Секрет: Дока – сокращение от «документация»</p> } </> ) }
Такой способ работает из-за того, что оператор «И» не приводит значения к типу Boolean
, а просто возвращает то, что стоит левее или правее.
- Если левое значение можно привести к
true
, то оператор возвращает правое значение. - Если левое значение можно привести к
false
, то оператор возвращает левое значение.
console.log(null && 0)// nullconsole.log(0 && null)// 0console.log('Лево' && 'Право')// Право
console.log(null && 0)
// null
console.log(0 && null)
// 0
console.log('Лево' && 'Право')
// Право
JavaScript приводит левое значение к типу Boolean
и получает true
, из-за чего решает вернуть правое значение ('Право'
).
🛠 Двойное отрицание (!!
) можно использовать, если мы хотим привести значение к логическому типу данных. Такой же результат получится, если использовать функцию Boolean
.
const value = 'Непустая строка'console.log(Boolean(value))// trueconsole.log(!!value)// true const value = 'Непустая строка' console.log(Boolean(value)) // true console.log(!!value) // true
Логические операторы JavaScript — Pi My Life Up
В этом руководстве вы узнаете о логических операторах в JavaScript.
В JavaScript логический оператор выполняет операции на основе логического вывода двух операндов. Логическим результатом является значение, которое равно true
или false
.
Используя логический оператор, вы можете легко выполнять операции в зависимости от того, являются ли два операнда истинными
или ложными
. В JavaScript также есть логический оператор, который возвращает обратное значение, поэтому false
когда true
и true
когда false
.
Изучение этих логических операторов является важной частью JavaScript и часто сочетается со многими другими операторами JS.
Эти операторы также составляют жизненно важную часть условных операторов if в JavaScript, помогая вам легко объединять несколько операций и избавляя вас от необходимости вкладывать несколько операторов if.
Ниже мы включили таблицу, демонстрирующую каждый логический оператор, поддерживаемый в JavaScript. Используя эту таблицу, вы должны получить хорошее представление о том, что делает каждый оператор.
Оператор | Имя | Пример | Результат |
---|---|---|---|
&& | И | x && y | true if оба x и y равны true |
|| | ИЛИ | х || у | верно если x или у верно |
! | Не | ! X | True IF x — False |
Конечно, таблица показывает вас так много. Если вы чувствуете, что вам нужно больше узнать о логических операторах, обязательно продолжайте чтение.
Мы расскажем о каждом из этих операторов, покажем их возможные результаты и способы их использования.
Примеры логических операторов в JavaScript
В этом разделе мы рассмотрим каждый логический оператор, который поддерживает JavaScript. Из следующих разделов вы должны узнать, как используется каждый из этих операторов и для чего они используются.
Мы также включили таблицу истинности для каждого значения, чтобы вы могли видеть возможные результаты, которые вы получите в зависимости от значений, переданных оператору.
Оператор И (
&&
) в JavaScript Логический оператор «И» ( &&
) в JavaScript позволяет вам сравнить два операнда, чтобы увидеть, являются ли они оба истинными
.
Если оба значения равны true
, то оператор вернет true
. Если любое значение равно false
, то оператор вернет false
.
Логический оператор И записывается сначала с левым операндом, затем с двумя символами амперсанда ( &&
) и, наконец, с правым операндом. Левый операнд будет сравниваться с правым операндом.
Используя приведенную ниже таблицу истинности, вы можете наблюдать возможные результаты логического оператора в JavaScript. В этой таблице показаны случаи, когда оператор «И» возвращает , ложь,
или 9.0005 правда .
Используя это, вы можете увидеть, что он будет возвращать true
только в том случае, если оба операнда равны true
.
a | b | a && b |
---|---|---|
ложь | ложь | ложь |
ложь | правда | ложь |
правда | ложь | ложь |
правда | true | true |
Когда JavaScript оценивает оператор AND, он сначала проверяет левый операнд перед проверкой правого операнда. Он будет проверять только правый операнд, если левый операнд равен true
.
Это может быть полезно знать при использовании «И» для сравнения результатов двух функций. Использование более легкой функции в качестве первого вызова может помочь сэкономить процессорное время.
Пример оператора AND
Позвольте нам показать вам два быстрых примера, чтобы продемонстрировать, как оператор AND работает в JavaScript. С помощью « console.log()
», мы можем легко увидеть значения, возвращаемые этим логическим оператором.
- Первое использование логического оператора «И» вернет
true
.Возвращает истину, потому что левый и правый операнды «
истина
». - Второе выражение вернет
false
.Это потому, что один из операндов «
false
«. Как упоминалось ранее, оператор «И» требует, чтобы оба операнда былиистинными
.
Результаты ниже показывают, как JavaScript оценивал логический оператор AND ( &&
) в обоих наших примерах.
Логический оператор ИЛИ (
||
) в JavaScript Используя оператор ИЛИ ( ||
) в JavaScript, вы можете сравнить два операнда и вернуть true
, если левый или правый операнд равен true
.
Логический оператор ИЛИ написан на JavaScript, сначала указывается левый операнд, за которым следуют два символа вертикальной черты ( ||
) и, наконец, правый операнд.
Чтобы понять логический вывод оператора ИЛИ, вы можете просмотреть таблицу ниже. В таблице ниже показано, что вернет оператор или ( ||
) в зависимости от значения его операндов.
В этой таблице левый операнд будет называться « a
», а правый операнд будет называться « b
».
Эта таблица показывает, что оператор ИЛИ возвращает true
до тех пор, пока один из операндов равен true
.
а | б | а || b |
---|---|---|
ложь | ложь | ложь |
ложь | правда | правда |
верно | неверно | верно |
верно | верно | верно |
Когда JavaScript выполняет логический оператор ИЛИ, он сначала проверяет левый операнд, чтобы увидеть, равен ли он правда
. После этого он будет проверять правого оператора только в том случае, если левый операнд равен false
.
Как и в случае с оператором AND, это поведение может быть полезно знать для оптимизации кода JavaScript.
Если у вас есть функция, которая возвращает быстро, вы можете использовать ее в качестве левого операнда, позволяя оператору ИЛИ быстро возвращаться, если значение равно true
.
Пример оператора OR (
||
)В приведенном ниже примере у нас есть три различных использования оператора OR. Мы быстро объясним результат каждого из этих выражений и почему.
- В первом примере JavaScript вернет
true
.Оператор или удовлетворяется тем, что левый операнд является истинным. Хотя правый операнд также равен
true
, JavaScript не будет его проверять. - Следующий пример также вернет
true
.В то время как левый операнд равен
false
, правый операнд равенtrue
, что удовлетворяет требованиям логического оператора ИЛИ. - Последний пример возвращает
false
, так как и левый, и правый операнд ложны.
Благодаря тому, что мы использовали функцию « console.log()
», вы можете увидеть, как JavaScript оценивал каждое использование логического оператора ИЛИ.
Логический оператор НЕ (
!
) в JavaScript Логический оператор НЕ в JavaScript ( !
) позволяет проверить, не является ли значение истинным
. Вы можете почти считать, что этот оператор возвращает инверсию любой логики, которая была возвращена.
Следует отметить, что этот логический оператор одновременно работает только с одним операндом. Если вы хотите получить инверсию нескольких операндов, вы должны использовать этот оператор для каждого из них.
Логический оператор НЕ написан в JavaScript с использованием восклицательного знака ( !
), за которым следует ваш операнд.
В таблице ниже показано, как оператор НЕ возвращает true
, когда операнд равен false
. Он также вернет ложь
когда операнд равен истина
.
и | ! a |
---|---|
ложь | правда |
правда | ложь |
!
) в JavaScriptЧтобы продемонстрировать это, давайте напишем короткий пример показывая, что возвращает оператор NOT.
- Первый пример вернет false, поскольку мы используем логический оператор НЕ для «истинного» значения.
- Во втором примере оператор НЕ вернет
true
. Это потому, что мы используем его для значения «false
».
Ниже вы можете увидеть результаты наших выражений NOT, зарегистрированных в консоли.
Заключение
В этом руководстве мы показывали вам различные логические операторы, поддерживаемые JavaScript.
Теперь вы должны знать, как использовать в коде логические операторы НЕ, ИЛИ и И.
Пожалуйста, оставьте комментарий ниже, если у вас есть какие-либо вопросы о логических операторах.
Если вы хотите узнать больше о JavaScript, у нас есть множество других руководств. У нас также есть множество руководств, если вы хотите изучить новый язык программирования.
логических операторов в JavaScript | Реализация оператора И, ИЛИ и НЕ
Java-скрипт — это язык разработки внешнего интерфейса, который уже давно используется на веб-сайтах. Несмотря на то, что программисты могут выбирать из нескольких серверных языков, не существует альтернативного языка, разработанного в качестве замены сценария Java. Это было связано с его способностью управлять компонентами HTML, стилями CSS и данными в целом.
Понимание логических операторов
Существует три оператора: И, ИЛИ и НЕ. Их можно использовать либо в базе данных, либо в кодировании, и они очень пригодятся разработчикам при создании компонентов сложной логики или потока.
Как реализовать логические операторы в JavaScript?
Давайте немного подробнее разберемся с каждым из них, реализованным в Javascript.
1. Оператор ИЛИ в JavaScript
Оператор ИЛИ в JavaScript представлен в символической форме двумя вертикальными линиями. Например, давайте рассмотрим следующий пример:
Синтаксис
результат = x || у; // то же, что и x OR y
- В типичном языке программирования логический оператор ИЛИ используется только для оценки нескольких логических переменных. Если какая-либо из его переменных истинна, то выражение оценивается и возвращает значение true, иначе оно вернет ложное значение.
- Java-скрипт имеет очень мощную реализацию операторов ИЛИ. Давайте лучше разберемся с применением логического оператора ИЛИ на примере.
В основном может быть четыре логических комбинации логических значений, перечисленных ниже:
- True || Truei.e. Истинно «ИЛИ» Истинно // результат будет Истинно
- Ложь || True i.e False“OR” True// результат будет True
- Верно || False i.eTrue «ИЛИ» False// результат будет True
- Ложь || False i.eFalse“OR”False// результат будет True
Как показано выше, результат этой операции всегда будет истинным, если только один из операндов не является ложным. Давайте посмотрим на реализацию оператора OR в следующем примере:
Код:
<тело>Java-скрипт ИЛИ оператор
Это пример для оператора ИЛИ
<скрипт> if ( true || false ) { // работает так же, как if( true || false ) document.getElementById("демо").innerHTML = "правда"; } скрипт> тело>
Вывод:
2.
Оператор AND в Javascript, обозначенный как &&Оператор AND в Javascript представлен в символической форме двумя амперсандами &&.
Синтаксис
var result = x && y; // эквивалентно x AND y
Как и оператор ИЛИ, логический оператор И используется для оценки нескольких логических операндов. Если какая-либо из его переменных имеет значение false, то выражение оценивается и возвращает значение false, иначе оно вернет истинное значение. Давайте лучше разберемся с применением логического оператора AND на примере.
В принципе, с оператором И будет четыре логических комбинации логических значений, перечисленных ниже:
- Истина || True т. е. True «ИЛИ» True // результат будет True
- Ложь || True i.e False“OR” True // результатом будет False
- Верно || Ложь т.е. Истина «ИЛИ» Ложь // результатом будет Ложь
- Ложь || False i.e False“OR” False // результатом будет False
Как показано выше, результат этой операции всегда будет ложным, если только оба операнда не истинны. Давайте посмотрим на реализацию оператора AND в следующем примере:
Код:
<тело>Оператор Java-скрипта AND
Это пример для оператора И
<скрипт> если (правда && ложь) { document.getElementById("demo1").innerHTML = "ложное значение"; } если (правда && правда) { document.getElementById("demo2").innerHTML = "истинное значение"; } скрипт> тело>
Вывод:
3. Оператор NOT в JavaScript Обозначается как !
Оператор НЕ в Javascript представлен в символической форме восклицательным знаком &&.
Синтаксис
var результат = ! у;
Подобно операторам ИЛИ и И, логический оператор И используется только для оценки нескольких логических операндов. Он используется для инвертирования значения операнда, поскольку он возвращает значение, противоположное предоставленному ему операнду. Давайте лучше разберемся с применением логического оператора НЕ на примере.
В принципе, с оператором НЕ было бы 2 логических возможности логических значений, которые перечислены ниже:
- ! True т. е. эквивалентно NOT True // конечным результатом будет логическое значение False, поскольку оно противоположно true
- ! False, т.е. эквивалентно NOT False // окончательный результат будет True Boolean значением, поскольку оно противоположно False
Как показано выше, результат этой операции всегда будет противоположен операнду, к которому была применена операция. Давайте посмотрим на реализацию оператора NOT в следующем примере:
Код:
<тело>Оператор Java-скрипт НЕ
Этот пример относится к логическому оператору NOT
<скрипт> если (правда || ложь) { вар результат = ложь; // определение переменной как false document.getElementById("demo1").innerHTML = ! результат ; //вывод переменной здесь будет истинным } если (правда && правда) { вар результат = истина; // определение переменной как истинной document.