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

Логические операторы ( || , && , ! ) обычно используются с булевыми (логическими) значениями, при этом возвращаемое ими значение также является булевым.

Операторы && (И) и || (ИЛИ) фактически возвращают значение одного из операндов, поэтому, если эти операторы используются с не булевыми величинами, то возвращаемая ими величина также может быть не булевой.

Оператор  Использование  Описание
Логическое И (&&)  expr1 && expr2 (Логическое И)

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

Таким образом, при использовании булевых величин в качестве операндов, оператор && возвращает true, если оба операнда true; в противном случае возвращает false.

Логическое ИЛИ (||)  expr1 || expr2 (Логическое ИЛИ)

Возвращает операнд expr1, если он может быть преобразован в true; в противном случае возвращает операнд expr2 (находит и возвращает первое истинное значение).

Таким образом, при использовании булевых величин в качестве операндов, оператор || возвращает true, если один из операндов true; если же оба false, то возвращает false.

Логическое НЕ (!)  !expr (Логическое НЕ)

Возвращает false, если операнд может быть преобразован в true; в противном случае возвращает true.

Использование оператора || (ИЛИ) для задания значений по умолчанию

[свернуть]
Оператор логического присваивания &&=

Оператор логического присваивания  a &&= b передает в переменную a значение переменной b, только если значение a истинно:

[свернуть]
Оператор логического присваивания ||=

Оператор логического присваивания  a ||= b передает в переменную a значение переменной b, только если значение a ложно:

[свернуть]
Оператор условного присваивания ??=

Оператор условного присваивания a ??= b передает в переменную a значение переменной b, только если значение a равно undefined или null:

[свернуть]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.