首先为我的英语不好对不起
所以,这是我的代码:
let x = 5
const {x: y=7} = {x}
console.log(y) // output is 5
但是为什么是5?不是7吗?
最佳答案
{x}
是{x: x}
的简写。由于x
的值为5
,因此等效于{x: 5}
。
这意味着您的代码等同于
const {x: y=7} = {x: 5}
这会将y
设置为x
中的{x: 5}
属性的值。如果没有属性,它将使用7
的默认值;但是由于该属性确实存在,所以使用了它的值,因此将y
设置为5
。与之比较
let a = 5;
const {x: y=7} = {a}
这会将y
设置为7
,因为对象中没有x
属性。