javascript的解构赋值是什么_如何从对象中提取值?

JavaScript解构赋值是从数组或对象提取值的简洁语法:对象解构用{}匹配属性名,支持嵌套、重命名(属性名:新变量名)、默认值(=设置,undefined触发)、跳过无关属性及剩余属性(...rest)。

JavaScript 的解构赋值是一种简洁语法,允许你从数组或对象中“提取”值并赋给变量,无需逐个访问属性或索引。

从对象中提取属性值

直接用大括号 {} 包裹要提取的属性名,等号右边是源对象。变量名必须和属性名一致,才能自动匹配赋值。

  • let { name, age } = { name: "Alice", age: 30 };name 得到 "Alice",age 得到 30
  • 如果属性不存在,对应变量值为 undefined
  • 支持嵌套解构:let { user: { id, role } } = { user: { id: 101, role: "admin" } };

重命名变量名

当变量名和属性名不同时,用 属性名: 新变量名 的写法。

  • let { title: bookName, author: writer } = { title: "JS Guide", author: "John" };
  • 此时 bookName 是 "JS Guide",writer 是 "John"

设置默认值

= 给解构变量指定默认值,当属性不存在或值为 undefined 时生效(null 不触发默认值)。

  • let { city = "Beijing", country = "China" } = { city: "Shanghai" };city 是 "Shanghai",country 是 "China"
  • 可与重命名结合:let { price: cost = 99 } = {};cost 为 99

解构时跳过不需要的属性

只列出关心的属性名即可,其余属性被忽略,不需额外操作。

  • let { a, c } = { a: 1, b: 2, c: 3, d: 4 }; → 只取 acbd 被自然跳过
  • 也可配合剩余属性:let { a, ...rest } = { a: 1, b: 2, c: 3 };rest{ b: 2, c: 3 }