解构赋值是一种从数组或对象中提取值并将其赋给变量的方式。可以将解构赋值理解为一种方便的语法,可以同时声明和赋值多个变量。
-
对象解构赋值:
-
{ name, age, gender } = person
将对象person
中的对应属性值解构赋值给变量name
、age
和gender
。// 1. 对象解构赋值 const person = { name: 'Alice', age: 30, gender: 'female' }; const { name, age, gender } = person; console.log(name); // Output: Alice console.log(age); // Output: 30 console.log(gender); // Output: female
-
-
数组解构赋值:
-
[first, second, ...rest] = numbers
将数组numbers
中的对应元素值解构赋值给变量first
和second
,剩余的元素则被解构为数组rest
。// 2. 数组解构赋值 const numbers = [1, 2, 3, 4, 5]; const [first, second, ...rest] = numbers; console.log(first); // Output: 1 console.log(second); // Output: 2 console.log(rest); // Output: [3, 4, 5]
-
-
函数参数解构赋值:
-
function greet({ name, age })
声明了一个接受一个对象作为参数的函数greet
。在函数体内,通过解构赋值,将传入对象的name
和age
属性值分别赋给变量name
和age
。// 3. 函数参数解构赋值 function greet({ name, age }) { console.log(`Hello, ${name}! You are ${age} years old.`); } greet({ name: 'Bob', age: 25 }); // Output: Hello, Bob! You are 25 years old.
-
-
默认值:
-
{ color, fontSize = 16 } = settings
将对象settings
中的color
属性值解构赋值给变量color
,如果对象settings
中没有fontSize
属性,则会使用默认值 16。// 4. 默认值 const settings = { color: 'blue' }; const { color, fontSize = 16 } = settings; console.log(color); // Output: blue console.log(fontSize); // Output: 16
-
-
嵌套解构:
-
{ name, address: { city } } = user
将对象user
中的name
属性值解构赋值给变量name
,并将嵌套对象address
中的city
属性值解构赋值给变量city
。// 5. 嵌套解构 const user = { name: 'Alice', age: 30, address: { street: '123 Main St', city: 'New York', }, }; const { name, address: { city } } = user; console.log(name); // Output: Alice console.log(city); // Output: New York
-
解构赋值可以有效地简化代码,并让代码更加清晰易读。它在处理复杂数据结构时特别有用。