JavaScript解构赋值是从数组或对象中按名或按位提取值并赋给变量的简洁语法,支持重命名、默认值、嵌套及混合解构,提升代码可读性与开发效率。
JavaScript 的解构赋值是一种从数组或对象中提取值并赋给变量的简洁语法,不用再写一堆 obj.prop 或 arr[0] 就能快速拿到想要的数据。
直接用大括号匹配属性名,自动把对应值赋给同名变量:
例如:
const { name, age } = { name: '小明', age: 25 }; → 得到 name === '小明'、age === 25
const { name: nickname } = { name: '小明' }; → nickname 得到 '小明'
const { city = '北京' } = {}; → city 是 '北京'
用中括号按索引顺序接收元素,跳过不想用的项也很方便:
const [a, b] = [1, 2, 3]; → a
=== 1,b === 2
const [first, , third] = ['a', 'b', 'c']; → first === 'a',third === 'c'
const [x, ...rest] = [10, 20, 30, 40]; → rest 是 [20, 30, 40]
把解构直接写在形参位置,传入对象时自动拆开,省得函数里再手动取值:
function greet({ name, greeting = '你好' }) { return `${greeting}, ${name}!`; }greet({ name: '李四' }) → '你好, 李四!'
深层对象或数组嵌套也能一层写完,避免链式访问出错:
const { user: { profile: { avatar } } } = { user: { profile: { avatar: 'avatar.png' } } };const [{ id, title }, ...rest] = [{ id: 1, title: '标题' }, { id: 2 }];
undefined,会报错;可配合默认空对象防御:const { user = {} } = data;
基本上就这些。它不改变运行逻辑,但让代码更短、意图更明确,尤其在处理 API 返回数据、配置对象、路由参数时特别省心。