Ответ
В JavaScript (и, соответственно, в Node.js) truthy и falsy — это термины, описывающие значения, которые при неявном приведении к булевому типу (например, в условии if) становятся true или false.
Список falsy-значений (всего 8):
false0(ноль)-0(минус ноль)0n(BigInt ноль)"",'',``(пустая строка)nullundefinedNaN
Любое другое значение является truthy. Это включает в себя:
"0","false"," "(непустая строка, даже если содержит только пробел)[](пустой массив){}(пустой объект)function() {}(пустая функция)Infinity
Практические примеры в Node.js:
// Проверка на truthy/falsy
const userInput = process.argv[2]; // Аргумент командной строки
if (userInput) { // Если аргумент передан (не undefined и не пустая строка)
console.log(`Вы ввели: ${userInput}`);
} else {
console.log('Аргумент не предоставлен.');
}
// Логический оператор ИЛИ (||) использует это поведение для задания значений по умолчанию
const port = process.env.PORT || 3000; // Если PORT не задан (undefined) или равен 0, будет использовано 3000
console.log(`Сервер запущен на порту ${port}`);
// Опциональная цепочка (?.) и оператор объединения с null (??) работают иначе:
// `??` реагирует только на `null` и `undefined`.
const configValue = someObject?.nested?.value ?? 'default'; // 'default' только если value === null/undefined