JavaScript解构赋值是ES6引入的按模式从数组或对象提取值并赋给变量的语法,核心为简洁与清晰:数组按位置、对象按属性名匹配,支持默认值、重命名、嵌套及剩余运算符。

核心就两点:简洁 + 清晰。变量从哪来一目了然,代码量少了一半,嵌套取值也不容易出错。
数组解构:按位置取值
左边用方括号列变量,顺序对应数组索引:
-
const [a, b, c] = [1, 2, 3];→ a=1, b=2, c=3 - 跳过中间:
const [, , third] = ['x', 'y', 'z'];→ third='z' - 取剩余项:
const [first, ...rest] = [10, 20, 30, 40];→ rest=[20, 30, 40] - 设默认值:
const [x = 10, y = 20] = [5];→ x=5, y=20(只有undefined才触发默认值)
对象解构:按属性名取值
左边用花括号,变量名默认和属性名一致:
-
const { name, id } = { name: 'Tom', id: 123 };→ name='Tom', id=123 - 重命名变量:
const { name: fullName, id: uid } = obj; - 嵌套解构:
const { user: { profile: { city } } } = data; - 默认值同样适用:
const { role = 'guest' } = {};→ role='guest'
常见实用场景
- 函数参数接收:直接解构传入的对象或数组,避免在函数体内手动取值
- 交换变量:
[a, b] = [b, a];不需要临时变量 - 处理API返回值:比如
const { data, error } = await fetchUser(); - 忽略不需要的字段:用逗号跳过,或用剩余运算符收尾










