ES6中的解构(二)

对象解构

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

对象解构可以设置默认值

let {x=3} ={x:5};
        x;  //5
let {x=3} ={};
        x;  //3
let {x=3} ={x:undefined};
        x;  //3
let {x=3} ={x:null};
        x;  // null
let {x,y=3} ={x:5};
        //x 5 y  3
let {x:y=10} ={x:5};  //x匹配模式   Y变量
        //y 5
let {x:y=10} ={};
        //y 10
let {x:y=10} ={y:5};  //10
let {x} ={y:5};   //undefined

字符串解构

var [a,b,c] = 'hello';  // a = 'h',b = 'e',c = 'l';

函数参数的解构赋值

 function fun([a,b]){
         return a+b;
  };
 fun([2,5]);  //7
  //默认值
 function fun([a=0,b=0]){
            return a+b;
 };
 fun([]);  //0
 function fun([a=0,b=0]){
         return a+b;
 };
 fun([3]);  //3

JSON解构

        let data ={
            name:'abc',
            age:18,
            friends:['x','y','z'],
            obj:{a:'a',b:'b'}
        };
        let {name,age:a=20,friends,obj} = data;
          //a =18   obj.a   friends[1]
 

猜你喜欢

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