ES6中的解构(一)

传统的赋值方式

let x = 1;
let y = 2;
let z = 3;
//或
let x = 1,
    y = 2,
    z = 3;

ES6中采用数组模式   运算符

let [x,y,z] = [1,2,3];

let arr = [1,2,3];
let [a,b,c] = arr;

模式匹配,一一对应

let [a,,c] = [1,2,3];      //a = 1; c = 3;
let [a,b,c] = [1,2];        //c = undefined

带默认值

let [a = 1] = ['a']; // a = 'a';
let [a = 1] = [];    // a = 1;

需要特别注意,如果解构的值为undefined,则取默认值

let [b = 1] = [undefined];  //1
let [b = 1] = [null];       //null

解构的对象不仅仅可以是单一的值,也可以是对象或数组

let [a,b,c] = [1,[2,3],4];
let [a,b,c] = [1,{x:'x'},4];

在对象的结构中,如下例,name是匹配模式,a才是变量

let {name:a,age:b} = {age:20,name:'abc'};  //a = 'abc';b = 20;
let {name,age} = {age:20,name:'abc'};  //相当于let {name:name,age:age} = {age:20,name:'abc'}
let {abc:name,age:age} = {age:20,name:'abc'};   //错误  name为变量, abc是对象中匹配的值

猜你喜欢

转载自blog.csdn.net/qq_41746329/article/details/86374752
今日推荐