解构赋值
解构代表分解数据结构,赋值指的是为变量赋值。在ES6中允许我们按照对应结构从数组或者对象当中提取值,再将提取出来的值赋值给变量。解构赋值使这个过程更加简便。
数组解构
let [a, b, c] = [1, 2, 3]; //注意 a,b,c 是没有加引号的
console.log(a) //1
console.log(b) //2
console.log(c) //3
等号右边有一个数组,数组元素分别是1,2,3;等号左边的中括号不是数组,它代表解构。中括号里面写的是变量的名字,中括号里面的变量a,b,c与数组中的1,2,3是一一对应的关系。中括号前面的let关键字代表a,b,c是使用let关键字声明的。
注意:如果变量比数组元素多,那么多出的变量就是 undefined 的
对象解构
let person = { name: 'zhangsan', age: 20 };
let { name, age } = person;
console.log(name); // 'zhangsan'
console.log(age); // 2
对象解构等号左边用大括号表示,大括号中写的是变量的名字,等号右边写要解构的对象。对象解构就是属性匹配,变量的名字匹配对象中属性的名字,匹配成功就将属性的值赋值给变量。
给解构出来的变量起别名(使变量的名字与属性中的名字不一样)
let {name: myName, age: myAge} = person; // myName myAge 属于别名
console.log(myName); // 'zhangsan'
console.log(myAge); // 20
冒号左侧属性用例匹配对象中的属性,冒号右边的才是真正的变量。