Javascript 这些类型的分解有什么区别

Javascript 这些类型的分解有什么区别,javascript,Javascript,我在存储库中看到过这一点,但我不太确定到底发生了什么。var值是否被替换,或者子问题的值是否取自var数据 const { value: question } = data; const { value } = data; 分解对象的属性 创建一个名为value的块范围常量,并为其赋值data.value 它与相同 const value = data.value; const question = data.value; 在不同变量名下分解对象的属性 创建名为question的块范围

我在存储库中看到过这一点,但我不太确定到底发生了什么。var值是否被替换,或者子问题的值是否取自var数据

const { value: question } = data;
const { value } = data;

分解对象的属性 创建一个名为
value
的块范围常量,并为其赋值
data.value

它与相同

const value = data.value;
const question = data.value;

在不同变量名下分解对象的属性 创建名为
question
的块范围常量,并为其赋值
data.value

它与相同

const value = data.value;
const question = data.value;
分解对象的属性 创建一个名为
value
的块范围常量,并为其赋值
data.value

它与相同

const value = data.value;
const question = data.value;

在不同变量名下分解对象的属性 创建名为
question
的块范围常量,并为其赋值
data.value

它与相同

const value = data.value;
const question = data.value;

属性可以从对象中解包,并指定给具有不同于对象属性名称的变量

var o = {p: 42, q: true};
var {p: foo, q: bar} = o;

console.log(foo); // 42 
console.log(bar); // true
例如,在这里,var{p:foo}=o从对象o获取名为p的属性,并将其分配给名为foo的局部变量


可以从对象中解压缩属性,并将其分配给具有不同于对象属性名称的变量

var o = {p: 42, q: true};
var {p: foo, q: bar} = o;

console.log(foo); // 42 
console.log(bar); // true
例如,在这里,var{p:foo}=o从对象o获取名为p的属性,并将其分配给名为foo的局部变量


只是重新命名而已
{value:question}=data
获取属性
value
并将其分配给名为
question
的局部变量。第二个函数获取属性
value
,并将其分配给一个名为
value
的局部变量。这只是重命名
{value:question}=data
获取属性
value
并将其分配给名为
question
的局部变量。第二个变量获取属性
value
,并将其分配给名为
value
的局部变量。