假设我们有一个函数在参数的内部对象中使用了一些键:
const api = ({ data: { name } = {} }) =>
`My name is ${name}.`;
如果我们将{}
, { data: '' }
, { data: 0 }
, { data: NaN }
or{ data: undefined }
传递给函数,我们将看到:
'My name is undefined.'
并且不会看到任何错误,因为解构赋值看到data
is falsy 并使用 = {}
而不是name
will be undefined
。
问题:为什么当我们传递null
给数据键时解构赋值返回错误?
api({ data: null });
// ==> Uncaught TypeError: Cannot destructure property 'name' of '{}' as it is null.