解释:ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构
以前:
let a = 1;
let b = 2;
let c = 3;
ES6 允许写成下面这样。
let [a, b, c] = [1, 2, 3];
console.log(a)// 1
console.log(b) // 2
console.log(c) //3
上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。
对象的解构赋值
解构不仅可以用于数组,还可以用于对象。对象字面量的语法形式是在一个赋值操作符左边放置一个对象字面量
let { foo, bar } = { foo: "aaa", bar: "bbb" };
console.log(foo) // "aaa"
console.log(bar) // "bbb"let obj1 = {
type: "nwd",
name: "前端"
};
let { type, name } = obj1;
console.log(type); // "nwd"
console.log(name); // "前端"
在这段代码中,obj1.type的值被存储在名为type的变量中;obj1.name的值被存储在名为name的变量中
问题1 使用结构赋值,实现两个变量的值的交换
let a = 1;
let b = 2;
[a,b] = [b,a];
console.log(a) //2
console.log(b) //1