什么叫做解构?
在ES6中 按照一定的模式 从数组中提取数值 对应的变量进行赋值的操作 就叫做解构赋值
本质上讲 解构赋值 就是模式匹配
1. 解构赋值
var [a, b, c] = [1, 2 ,3]
// console.log(a, b, c);
如果想要解构赋值成功 那么就必须保证两边的模式完全一样
var [a, b, c] = [1,[2],{
name : "lucy"}];
// console.log(a, b, c);
2. 解构不成功
如果想要解构不成功 那么变量的值就等于undefined
let [r] = [];
// console.log(r); // undefined
这个就像var 声明了变量之后 不进行赋值 var a;
解构不成功 :
let [s, t] = [3];
// console.log(s, t);
这个就是属于解构不成功 因为数值不够 3 , undefined
3. 不完全解构
不完全解构的情况下 也可以进行解构赋值 只是后面放数值的数组都有多的数字
不完全解构 : 指得就是等号左右两边模式一样 但是只匹配到右边得一部分数据
let [x, y] = [1, 2 ,3];
console.log(x , y);
4. 如果等号右边不是数组 那么就会报错 因为模式一样
let [m] = 1;
let [m] = false;
let [m] = null;
let [m] = {
};
console.log(m); // {} is not iterable 因为{}不可使用下标进行迭代
注意点
1. 解构赋值是允设置默认得 但是如果要启用默认值 那么 这个变量得值就必须严格等于undefined
// let [a, b] = [1, 2];
let [a, b = "abc"] = [1, 2];
console