首页 > 解决方案 > Javascript 为什么带有花括号的 const 声明有时在花括号内有 = 符号?

问题描述

我正在研究一个项目,我看到了这种模式:

handleValueChange = (e) => {
    const { target: { id, value } = {} } = e || {}; 
    # some code ....

我从来没有={}之后看到过const,而且我在网上找不到任何文档。

这种语法叫什么?它是如何工作的?

标签: javascriptconstants

解决方案


解构分配文档中所述:

如果从对象中解包出来的值为 ,则可以为变量分配默认值undefined

例如:

const {a = 10, b = 5} = {a: 3};

console.log(a); // 3
console.log(b); // 5

在这里您可以看到bundefined因此在解构时5使用了默认值b

在您的情况下,如果targetis undefinedwhile destructuring e,则将使用空对象{}

这在eisundefined或的情况下是必需的null,否则我们将收到如下错误:

无法读取未定义的属性“id”

const { target: { id, value } } = {};
console.log( id, value )

使用默认值处理这种情况:

const { target: { id, value } = {} } = {};
console.log( id, value )


推荐阅读