Destructuring parameters (TypeError: null has no properties)
Destructuring parameters (TypeError: null has no properties)
我有一个带有 video
参数的函数,该参数可以为 null,我正在尝试使用默认值对其进行解构。我遇到了一些让我感到困惑的事情(甚至试图阅读它)
const VideoDetail = ({
video = {},
} = {}) => {
console.log(video);
return 5;
};
这里的console.log(video)
肯定不能为null,应该默认为一个空对象吧?好像不是。这在我的实际问题中引起了问题:Getting TypeError: null has no properties
const VideoDetail = ({
video = {},
video: { id: { videoId = 0 } = {} } = {}
} = {}) => {
console.log(videoId);
return 5;
};
我认为这是因为视频为空。如果它实际上是一个空的默认对象,就不会发生这种情况,对吗?
我错过了什么?
谢谢
仅当 属性 为 undefined
(不存在或明确设置)时才使用默认参数。其他虚假(null
、false
等)值不被替换。
在此处阅读更多内容:Default parameters - JavaScript | MDN
我有一个带有 video
参数的函数,该参数可以为 null,我正在尝试使用默认值对其进行解构。我遇到了一些让我感到困惑的事情(甚至试图阅读它)
const VideoDetail = ({
video = {},
} = {}) => {
console.log(video);
return 5;
};
这里的console.log(video)
肯定不能为null,应该默认为一个空对象吧?好像不是。这在我的实际问题中引起了问题:Getting TypeError: null has no properties
const VideoDetail = ({
video = {},
video: { id: { videoId = 0 } = {} } = {}
} = {}) => {
console.log(videoId);
return 5;
};
我认为这是因为视频为空。如果它实际上是一个空的默认对象,就不会发生这种情况,对吗?
我错过了什么?
谢谢
仅当 属性 为 undefined
(不存在或明确设置)时才使用默认参数。其他虚假(null
、false
等)值不被替换。
在此处阅读更多内容:Default parameters - JavaScript | MDN