javascript - 为什么解构赋值不知道空值是假的并使用默认值?

标签 javascript destructuring object-destructuring falsy

<分区>

假设我们有一个函数在参数的内部对象中使用一些键:

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.

最佳答案

根据 MDN docs关于对象解构中的默认值:

A variable can be assigned a default, in the case that the value pulled from the object is undefined.

关于javascript - 为什么解构赋值不知道空值是假的并使用默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44138770/

相关文章:

javascript - 将未设置的属性设置为函数中的默认属性?

javascript - JS 数组移位 vs 拼接 vs 切片 vs 解构

javascript - React js重命名和解构数组长度

javascript - 自动播放Google云端硬盘中的视频并在完成JavaScript时发出警报

javascript - 是否可以使用扩展程序监控 Chrome 中的 HTTP 流量?

javascript - 在 typescript 主体前后插入缩进?

javascript - 如何在 JavaScript 中链接两到三个第三方回调?

javascript - typescript 对象解构结果为 "Property assignment expected."

javascript - 如何从 JavaScript 中的对象内部解构数组?

javascript - 什么是解构赋值及其用途?