Логические операторы в Node.js (||, &&, !) обладают особенностями, связанными с их поведением и возвращаемыми значениями:
|| (ИЛИ): Возвращает первый "истинный" операнд или последний операнд, если все они "ложные".&& (И): Возвращает первый "ложный" операнд или последний "истинный" операнд, если все они "истинные".! (НЕ): Преобразует операнд в булево значение и возвращает его инверсию.Особенности связаны с "приведением к булеву значению" (truthiness/falsiness):
false, 0, '' (пустая строка), null, undefined, NaN.Операторы || и && являются "лексическими" (или "короткими"): они прекращают вычисление, как только результат становится известен.
javascript
Таблица с поведением || и &&:
| Выражение | Результат | Описание |
|---|---|---|
| `a | b` | |
| `a | b` | |
a && b | a if a is falsy | Возвращает a, если a ложно |
a && b | b if a is truthy | Возвращает b, если a истинно |