javascript - 为什么变量 "y"的值为 5?不是7?

标签 javascript object destructuring

首先对不起我的英语不好

所以,这是我的代码:

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: 5}x 属性的值。如果没有属性,则使用默认值7;但由于该属性确实存在,因此使用了它的值,因此将 y 设置为 5

比较

let a = 5;
const {x: y=7} = {a}

这会将 y 设置为 7,因为对象中没有 x 属性。

关于javascript - 为什么变量 "y"的值为 5?不是7?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64288121/

相关文章:

javascript - JQuery .on() 实时计算

c++ - 我在使用类(class)时哪里出错了?

javascript - 如何将加载到 <object> 中的元素样式设置为数据

在对象之前打印的 C++ 无意义对象

javascript - 为什么这个对象解构不起作用?

javascript - 为什么 SVG 线条/路径相互重叠会产生不同的笔划?

javascript - jQuery JSON 循环嵌套对象来创建菜单

javascript - Vue - 将对象解构到 this(数据)

javascript - 从 Angular js中的指令中删除焦点后更改输入

performance - React - 解构时的 defaultProps 与 ES6 默认参数(性能问题)