Назад к вопросам
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 истинно |