【发布时间】:2017-05-23 15:14:00
【问题描述】:
假设我们有一个函数在参数的内部对象中使用一些键:
const api = ({ data: { name } = {} }) =>
`My name is ${name}.`;
如果我们将{}、{ data: '' }、{ data: 0 }、{ data: NaN } 或{ data: undefined } 传递给我们将看到的函数:
'My name is undefined.'
并且不会看到任何错误,因为解构赋值会看到 data 是虚假的并使用 = {} 而不是 name 将是 undefined。
问题:当我们将null 传递给数据键时,为什么解构赋值返回错误?
api({ data: null });
// ==> Uncaught TypeError: Cannot destructure property 'name' of '{}' as it is null.
【问题讨论】:
标签: javascript destructuring object-destructuring falsy