JavaScript函数参数支持对象解构赋值,可直接在形参中解构、设默认值(需配合= {}防错)、重命名(old: new)、嵌套解构及剩余属性(...rest)收集未解构字段。

JavaScript 中可以在函数参数位置直接使用对象解构赋值,让代码更简洁、语义更清晰。你不需要先接收整个对象再手动解构,而是在形参列表里直接写解构模式。
基础用法:直接在参数中解构
函数定义时,把参数写成对象解构形式即可。传入的对象会自动按属性名匹配并赋值:
function greet({ name, age }) {
console.log(`你好,${name},今年${age}岁`);
}
greet({ name: '小明', age: 25 }); // 你好,小明,今年25岁
设置默认值(避免 undefined)
解构时可为每个属性指定默认值,当传入对象缺少该属性或值为 undefined 时生效(null 不会触发默认值):
function createUser({ username = 'guest', role = 'user', isActive = true } = {}) {
return { username, role, isActive };
}
createUser({ username: 'admin' }); // { username: 'admin', role: 'user', isActive: true }
createUser(); // { username: 'guest', role: 'user', isActive: true }
注意:= {} 是给整个参数设默认值,防止传入 undefined 导致解构报错。
立即学习“Java免费学习笔记(深入)”;
重命名与嵌套解构
支持属性重命名(用 oldName: newName)和多层嵌套解构:
function display({
title: bookTitle, // 重命名
author: { name: authorName, bio }, // 嵌套解构
tags = []
} = {}) {
console.log(`${bookTitle} by ${authorName}`);
console.log('Bio:', bio);
console.log('Tags:', tags);
}
display({
title: 'JS 精髓',
author: { name: '张三', bio: '前端工程师' },
tags: ['JavaScript', 'ES6']
});
结合剩余属性收集未解构字段
用 ...rest 捕获对象中未被显式解构的其他属性:
function logInfo({ id, name, ...others }) {
console.log('ID:', id, 'Name:', name);
console.log('Others:', others); // 包含其余所有属性
}
logInfo({ id: 101, name: '李四', email: 'lisi@example.com', role: 'editor' });
// Others: { email: 'lisi@example.com', role: 'editor' }


















