← Назад к вопросам

Что такое Falsy значения в JavaScript?

1.0 Junior🔥 151 комментариев
#JavaScript Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое Falsy значения в JavaScript?

Falsy (ложные) значения — это значения, которые при преобразовании в булев тип становятся `false`. Это фундаментальная концепция JavaScript, которая часто используется в условных выражениях, циклах и логических операциях.

Полный список Falsy значений

В JavaScript существует ровно 6 примитивных falsy значений:

  • false — булево значение false
  • 0 — число ноль
  • -0 — отрицательный ноль
  • 0n — BigInt ноль
  • "" (пустая строка) — строка нулевой длины
  • null — отсутствие значения
  • undefined — неинициализированная переменная
  • NaN — не число (Not-a-Number)

Примеры использования

// Демонстрация falsy значений
if (false) console.log("не выполнится");
if (0) console.log("не выполнится");
if ("") console.log("не выполнится");
if (null) console.log("не выполнится");
if (undefined) console.log("не выполнится");
if (NaN) console.log("не выполнится");

// Boolean() преобразование
Boolean(false);     // false
Boolean(0);         // false
Boolean("");        // false
Boolean(null);      // false
Boolean(undefined); // false
Boolean(NaN);       // false

Практическое применение

Проверка существования переменной:

const user = null;

// Краткая проверка
if (!user) {
  console.log("Пользователь не найден");
}

// С оператором Optional Chaining
const name = user?.name ?? "Гость";

Использование оператора || (OR):

// Установка значения по умолчанию
const count = userInput || 0;
const name = data.username || "Anonymous";

// Это работает потому что || возвращает первое truthy значение
const result = null || undefined || "default" || "other";
console.log(result); // "default"

Использование оператора && (AND):

// Условное выполнение
user && console.log(user.name);

// Эквивалентно
if (user) {
  console.log(user.name);
}

Важные различия

Falsy ≠ Null/Undefined:

false == 0;        // true (абстрактное равенство)
false === 0;       // false (строгое равенство)
null == undefined; // true
null === undefined; // false

Пустой объект и массив — Truthy:

Boolean({});     // true
Boolean([]);     // true
Boolean([0]);    // true

// Это частая ошибка
if ([]) console.log("выполнится!");
if ({}) console.log("выполнится!");

Лучшие практики

  1. Используй === вместо == для точных проверок
  2. Явная проверка нулей: value === null || value === undefined
  3. Nullish coalescing ?? вместо || для обработки 0 и пустых строк
  4. Optional Chaining ?. для безопасного доступа к свойствам
// Безопасная работа с данными
const age = response.user?.age ?? 18;
const phone = data?.contact?.phone?.trim() || "не указан";

Понимание falsy значений критично для написания надёжного JavaScript кода, особенно при работе с данными из API и пользовательским вводом.