解构赋值
1. 从对象或数组中提取数据, 并赋值给变量(多个)
2. 对象的解构赋值
let {n, a} = {n:'tom', a:12}
let obj = {
name: 'tom',
age: 12
}
let {name, age} = obj // 结构对象: 变量名要与对象的属性名一致
console.log(name, age)
3. 数组的解构赋值
let [a,b] = [1, 'atguigu'];
let arr = [1, 2, 3, 4]
let [a, b, c] = arr
console.log(a, b, c)
4. 用途
(1) ES6解构(向数组的末尾添加一个或更多元素)
let arr = [1,2,3];
let [a,b,c] = arr;
let result = [a,b,c,4];
console.log(result); //[1,2,3,4]
(2)ES6解构 (如何不使用中间值,将两个变量的值进行交换)
let a=1;
b=2;
[a,b] = [b,a];
* 给多个形参赋值
function foo(person) {
console.log(person.name, person.age) // 必须通过对象.属性名的方式才能拿到数据
}
let person = {name:'jack', age: 19} // 对象的属性被自动解构
foo(person)
function bar({name, age}) {
console.log(name, age)
}
bar(person)