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