对象的解构赋值
et {对象的属性名: 要声明的变量名} = 对象
就会自动声明一个变量出来,变量的值就是对象中对应的属性的值
如下例子:
let obj = {
name: '华为',
age: 30
}
let name1 = obj.name // 以前的赋值
let {name: name2} = obj // 解构赋值
console.log(name1) // 华为
console.log(name2) // 华为
如果对象的属性名和要声明的变量名同名可以简写成一个
let obj = {
name: '华为',
age: 30
}
// let { name: name, age: age } = obj;
// 对象的属性名name/age和变量名name/age相同,则可以简写成一个
let {name, age} = obj
console.log(name, age) // 华为 30
// 主要应用于:import { 要导入的内容, 要导入的内容 } from "模块"
function test ({name, age}){
console.log(name, age)
}
test(obj)
数组的解构赋值
可以从数组中提取值,按照对应位置,对变量赋值
let arr = [1, 2, 3, 4]
let [num1, num2, num3, num4] = arr
也可以这样
let [num1, , , num4] = arr
console.log(num1) // 1
console.log(num4) // 4
二维数组
let arr = [[1, 2], [3, 4]]
let [[num1, num2], [num3, num4]] = arr
console.log(num1, num2, num3, num4) // 1 2 3 4