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

核心就两点:简洁 + 清晰。变量从哪来一目了然,代码量少了一半,嵌套取值也不容易出错。
数组解构:按位置取值
左边用方括号列变量,顺序对应数组索引:
本文档主要讲述的是用Apache Spark进行大数据处理——第一部分:入门介绍;Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架。最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一。 在这个Apache Spark文章系列的第一部分中,我们将了解到什么是Spark,它与典型的MapReduce解决方案的比较以及它如何为大数据处理提供了一套完整的工具。希望本文档会给有需要的朋友带来帮助;感
-
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(); - 忽略不需要的字段:用逗号跳过,或用剩余运算符收尾









