在JavaScript中,解构赋值(Destructuring Assignment)是一种从数组或对象中提取数据并将其分配给变量的简洁方式。这使得你可以用更少的代码来访问复杂的嵌套结构。
1、解构数组
当你知道一个数组的元素顺序时,可以使用解构赋值来提取这些值:
const [first, second] = [1, 2]; // first = 1, second = 2
你还可以忽略某些值或者指定默认值:
const [x, , y] = [1, 2, 3]; // x = 1, y = 3
const [a = 10, b = 20] = []; // a = 10, b = 20
2、解构对象
对于对象,可以通过键名来提取属性:
const {name, age} = {name: 'Alice', age: 25};
// name = 'Alice', age = 25
同样地,可以指定默认值,并且使用计算属性键:
const obj = {firstName: 'John'};
const {firstName, lastName = 'Doe'} = obj;
// firstName = 'John', lastName = 'Doe'
const {['first-name']: firstName} = {['first-name']: 'Jane'};
// firstName = 'Jane'
3、嵌套解构
当对象包含其他对象时,可以通过嵌套解构来访问深层的属性:
const {address: {city, state}} = {
address: {
city: 'New York',
state: 'NY'
}
};
// city = 'New York', state = 'NY'
4、解构参数
在函数定义中,可以直接使用解构赋值来简化参数处理:
function printPerson({name, age}) {
console.log(`Name: ${name}, Age: ${age}`);
}
printPerson({name: 'Bob', age: 30});
// Output: Name: Bob, Age: 30