Параметры деструктурирования (TypeError: null не имеет свойств)

У меня есть функция с параметром video, который может быть нулевым, и я пытаюсь деструктурировать ее с помощью значений по умолчанию. Натыкаюсь на пару вещей, которые меня смущают (даже пытался прочитать об этом)

const VideoDetail = ({
    video = {},
} = {}) => {
    console.info(video);
    return 5; 
};

Конечно, console.info(video) здесь не может быть нулевым и должен по умолчанию быть пустым объектом? Кажется, это не так. Что вызывает у меня проблемы в моем актуальном вопросе: Получение TypeError: null has no properties

const VideoDetail = ({
    video = {}, 
    video: { id: { videoId = 0 } = {} } = {}
} = {}) => {
    console.info(videoId);
    return 5;
};

Я думаю, это потому, что видео пустое. Если бы это был фактически пустой объект по умолчанию, этого бы не произошло, верно?

Что я пропустил?

Спасибо

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

Bergi 19.12.2020 23:31

Да неужели? Тогда это объясняет! Спасибо!

NickW 19.12.2020 23:32
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
342
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Параметры по умолчанию используются только в том случае, если свойство имеет значение undefined (либо не существует, либо установлено явно). Другие ложные (null, false и т. д.) значения не заменяются.

Подробнее здесь: Параметры по умолчанию - JavaScript | МДН

Другие вопросы по теме