Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: nullish, coalescing

Что делает оператор ?? (nullish coalescing)?

Вопрос проверяет понимание работы с значениями по умолчанию и разницы между null/undefined и другими falsy-значениями.

Короткий ответ

Оператор ?? возвращает правый операнд, только если левый равен null или undefined. Во всех остальных случаях возвращается левое значение. В отличие от ||, он не считает 0, false или пустую строку ошибочными значениями. Это делает ?? безопасным для задания значений по умолчанию.

Длинный ответ

?? решает типичную проблему оператора ||, который подменяет значение по умолчанию при любом falsy-значении.

Определение

Nullish coalescing (??) — оператор, возвращающий правый операнд, если левый равен null или undefined.

Базовый пример

const value = 0;
const result = value ?? 10;

console.log(result); // 0

Для сравнения с ||:

const result = value || 10;
console.log(result); // 10

Когда ?? особенно полезен

  1. Значение 0 является валидным.

  2. Пустая строка "" имеет смысл.

  3. false — корректное логическое состояние.

Пример с настройками

function init(options) {
  const timeout = options.timeout ?? 3000;
  const debug = options.debug ?? false;

  // ...
}

Ограничения использования

  1. Нельзя смешивать ?? с || или && без скобок.

// Ошибка
a ?? b || c;

// Правильно
a ?? (b || c);

Вывод

?? стоит использовать для задания значений по умолчанию, когда важно отличать null/undefined от других допустимых значений.

Уровень

  • Рейтинг:

    5

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#nullish

#coalescing

Подпишись на React Developer в телеграм