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

preview_player
Показать описание
В JavaScript есть четыре логических оператора: || (ИЛИ), && (И) и ! (НЕ), ?? (Оператор нулевого слияния). Здесь мы рассмотрим первые три!
Рекомендации по теме
Комментарии
Автор

Обьяснил просто наклонённые кавычки. Я их раньше не понимала.

ukraine_on_fire
Автор

Я думала наклонённые кавычки для HTML в Джаваскрипте.

ukraine_on_fire
Автор

Вы не корректно обьясняете то каким образом работают логические операторы в JS.
*LogicalOrEpression*
( Expression1) || (Expression2)
1. Пусть _LVal_ будет равен результату вычисления Exression1
2. Пусть _LBool_ будет равен результату вычисления ToBoolean( LVal )
3. ЕСЛИ _LBool_ === true
ТОГДА ВЕРНУТЬ lval
4. Пусть _RVal_ будет равен результату вычисления Exression2
5. Вернуть _RVal_

Как видите, в вычислениях правая часть участвует тогда и только тогда, когда левая часть, после приведения ее к Boolean не будет равна true.

Или если перефразировать:
Результатом вычисления LogicalOrExpression будет результат вычисления его левой части, если приведение к Boolean этого результата даст true. И правой части, в противном случае. То есть когда результат вычисления левой части при приведении его к Boolean даст false.

Еще проще можно описать это как:
Правая часть будет выполнена только тогда, когда результат toBoolean от левой части будет равен false


Схожим образом работает и
*LogicalANDEpression*
( Expression1) && (Expression2)
1. Пусть _LVal_ будет равен результату вычисления Exression1
2. Пусть _LBool_ будет равен результату вычисления ToBoolean( LVal )
3. ЕСЛИ _LBool_ === false
ТОГДА ВЕРНУТЬ lval
4. Пусть _RVal_ будет равен результату вычисления Exression2
5. Вернуть _RVal_


*ИГОГО*
В языке JavaScript во главу угла ставиться понятие ВЫРАЖЕНИЕ и понятие ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЯ.
Каждая операция представляет из себя одно или более выражений, которые вычисляются.
Бинарные логические выражения, это способ организации цепочки вычислений, где правая часть вычисляется только тогда когда левая часть удовлетворяет определенному условию в соответсвии с качеством выражения.

Для случая OR - чтобы произошло вычисления правой части, левая часть должна дать ToBoolean(LVal) === false.
Для случая AND левая часть должна дать ToBoolean(LVal) === true.

Почему важно понимать это именно таким образом?
Потому что я описал выше - JS это язык выражений. Иными словами мы можем написать
expr1 && expr2 || expr3 && expr4 || expr5
Что согласно описанию данному выше очень легко понять и разобрать:
ToBool( expr1) === false
ЕСЛИ ДА = вернуть результат expr1
ЕСЛИ НЕТ перейти к вычислению expr2

ToBool( expr2) === true
ЕСЛИ ДА = вернуть результат expr2
ЕСЛИ НЕТ перейти к вычислению expr3

И так далее.

demimurych