foundation

null vs undefined

Семантика отсутствия, опциональные свойства, значения по умолчанию, optional chaining и nullish coalescing.

`undefined` обычно означает «не передали» или «свойство отсутствует». `null` обычно означает намеренное отсутствие. Оба nullish, но в API сигнализируют о разном намерении.

`value || fallback` считает отсутствующими все falsy значения (0, "", false). `value ?? fallback` подставляет fallback только для `null` или `undefined`. Optional chaining `obj?.a?.b` прерывает цепочку только там, где стоит `?.`.

					const count = 0;
console.log(count || 10); // 10 — неверно, если 0 валиден
console.log(count ?? 10); // 0
				

Явно моделируйте контракт API: какие поля опциональны, где null, а где undefined, и являются ли 0 или false валидными состояниями.

На интервью объясняйте концепцию на конкретном примере и называйте поведение рантайма, которое проверяют.

Типовые ошибки: путать похожие API и забывать edge cases в live coding.

Компромисс часто между ясностью и производительностью или между безопасностью и удобством.

Чеклист:

  • Различайте || и ??.
  • Используйте ?. для безопасного вложенного доступа.
  • Документируйте семантику отсутствия в API.