Назад к вопросам
Junior
128
questionbank

В чем особенности логических операторов?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Логические операторы в Node.js (||, &&, !) обладают особенностями, связанными с их поведением и возвращаемыми значениями:

  • || (ИЛИ): Возвращает первый "истинный" операнд или последний операнд, если все они "ложные".
  • && (И): Возвращает первый "ложный" операнд или последний "истинный" операнд, если все они "истинные".
  • ! (НЕ): Преобразует операнд в булево значение и возвращает его инверсию.

Особенности связаны с "приведением к булеву значению" (truthiness/falsiness):

  • "Ложные" значения: false, 0, '' (пустая строка), null, undefined, NaN.
  • Все остальные значения считаются "истинными".

Операторы || и && являются "лексическими" (или "короткими"): они прекращают вычисление, как только результат становится известен.

// Пример ||
const resultOr = 0 || 'hello' || true; // Возвращает 'hello'

// Пример &&
const resultAnd = 'hello' && 0 && true; // Возвращает 0

// Пример !
const resultNot = !'hello'; // Возвращает false
const resultNotNull = !null; // Возвращает true

Таблица с поведением || и &&:

Выражение Результат Описание
`a b`
`a b`
a && b a if a is falsy Возвращает a, если a ложно
a && b b if a is truthy Возвращает b, если a истинно