语法:const {} = variableName,有人能解释或指出方向吗?(涉及IT技术)

31

在JavaScript中(可能是ES6),这段语法的含义是什么:

const {} = 变量名;

我目前正在努力掌握React。在很多示例中,我遇到了这种语法。例如:

const {girls, guys, women, men} = state;

5
这被称为“解构赋值”。(参见链接) - Pointy
1个回答

53
首先,这与React无关。它是ECMAScript 6(或者如果你喜欢的话,JavaScript 2015)的一部分。
你在这里看到的是解构赋值
const {girls, guys, women, men} = state;

// Is the same as

const girls = state.girls;
const guys = state.guys;
const women = state.women;
const men = state.men;


在学习React时,你可能会遇到类似的模式:

import { methodA, methodB } from "my-module";

在这种情况下,您有一个名为my-module的模块正在导出一些函数。使用import {} from语法,您可以选择要导入哪些函数。请注意,这不是解构赋值,尽管它的工作方式类似。

3
也适用于数组:const { a, b, c } = ['A', 'B', 'C']; - Sergio Flores
它也适用于函数参数 function({ a, b }) {} - Gio Polvara
它们被称为命名参数 - Sergio Flores
2
请注意,导入语法与解构完全不同。虽然在速记符号中看起来相似,但它使用 as 而不是 :,且不可嵌套。 - Bergi
2
@Bergi 你说得对,但是由于楼主对解构赋值感到困惑,我认为让他学习一下导入符号也可能会有帮助。我更新了答案,说明它们并不是同一回事。 - Gio Polvara

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接