ES6(二)--变量的解构赋值

解构赋值本质上是一种匹配模式,只要两边的模式相同,那么左边的变量就可以被赋予对应的值

数组的解构赋值

ES5中,给多个变量赋值可能是这样

var a = 1, b = 2, c = 3;
//或者这样
var a = 1;
var b = 2;
var c = 3;

ES6中可以使用解构赋值

let [a, b, c] = [1, 2, 3];
console.log(a, b, c);//1 2 3

或者这样

let [a, [ [b], c] ] = [1, [ [2], 3] ];
console.log(a, b, c);//1 2 3

let [ , , d] = [1, 2, 3];
console.log(d);//3

无论数组里面写的有多么复杂,只要两边的结构匹配上就行

解构赋值还可以指定一个默认值

let [x = 1] = [];
console.log(x);//1

let [e = 2, f, g] = [ , 3, 4];
console.log(e, f, g);//2 3 4

对象的解构赋值

let {a, b} = {b: "b", a: "a"};
console.log(a, b);//a b

对象的解构赋值和数组有一点不一样,数组的解构赋值是按顺序匹配的,对象是按key来匹配的

基本类型的解构赋值

let [a, b, c] = "123";
console.log(a, b, c);//1 2 3

字符串的解构赋值,实质上是把字符串转化为一个类数组,然后再进行匹配,字符串123可以理解为[1,2,3]

获取字符串的长度

let {length:len} = "12345";
console.log(len);//5

标签: none

添加新评论