ES6中的解構(二)
阿新 • • 發佈:2019-01-13
物件解構
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]