Skip to content

解构赋值

通过模式匹配从数组或对象中提取值,并赋值给变量。

1. 数组解构

javascript
let [a, b, c] = [1, 2, 3];
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3

2. 对象解构

javascript
let {name, age} = {name: 'John', age: 30};
console.log(name); // John
console.log(age); // 30

3. 嵌套解构

javascript
let {name: {first, last}} = {name: {first: 'John', last: 'Doe'}};
console.log(first); // John
console.log(last); // Doe

4. 解构默认值

javascript
let [a = 1, b = 2, c = 3] = [1, 2];
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3

5. 解构参数

javascript
function greet({name, age}) {
    console.log(`Hello, ${name}! You are ${age} years old.`);
}

greet({name: 'John', age: 30}); // Hello, John! You are 30 years old.

6. 解构赋值的限制

!> 解构赋值要求等号左边的模式必须是一个可遍历的结构(即,必须有 Iterator 接口),如 ArrayMapSetStringTypedArrayarguments 对象等。