ES6——解构赋值
从数组或者对象中提取出数据,并分别赋值给多个变量。
结构数组时,等号左边用数组的方式接收;
结构对象时,等号左边用对象的形式接收;
等号左边[]与{}中的变量,相当于在全局中定义的变量;
解构赋值,在ajax数据交互中非常有用。用法参看以下例子:
let [a,b,c]=[1,2,3];//等号左右两边,解构要保持一致
console.log(a,b,c);//输出1 2 3
let [d,e,f]=[1,[2,3]];
console.log(d,e,f);//输出1 [2, 3] undefined
let [g,[h,i]]=[1,[2,3]];
console.log(g,h,i);//输出 1 2 3
let json={
name:'qqqq',
age:'12',
job:'web'
};
let {name,age,job}=json;
console.log(name,age,job);//输出qqqq 12 web
也可以给每一项重新起名字,效果一样(可用于数据交互时,前后字段名不一致时,更改字段名):
let {name:n,age:a,job:j}=json;
console.log(n,a,j);//输出qqqq 12 web
解构封装的函数:
function box(){
return{
a:111,
b:222
}
}
let {a,b}=box();
console.log(a,b);//输出 111 222
函数传参:
function box({a,b}){
console.log(a,b);//输出1 2
}
box({a:1,b:2});
解构时可以给默认值:
let [a,b,c=’默认值’]=[‘aaa’,’bbb’];
两个变量互换值:
let a=1;
let b=2;
[a,b]=[b,a]
console.log(a,b);//输出2 1