Выбор ответа Junior Современный синтаксис обновлено

Деструктуризация null

Вопрос

Что произойдёт при вызове show(null)?

function show({ title = 'Без названия' } = {}) {
  return title;
}

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Бросит TypeError. Значение по умолчанию параметра = {} срабатывает только для undefined.

Варианты ответа

  1. Вернёт 'Без названия'
  2. Вернёт null
  3. Бросит TypeErrorправильный ответ
  4. Вернёт undefined

Разбор

Значение по умолчанию параметра = {} срабатывает только для undefined. При null оно не подставляется, и движок пытается деструктурировать null, что бросает TypeError: Cannot destructure property 'title' of null. show() и show(undefined) вернули бы 'Без названия'. Если null возможен, пишут function show(props) { const { title = '...' } = props ?? {}; }.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме