要交换两个数的值怎么办呢?
let a=1
let b=2
c=a
a=b
b=c
可以吗,当然可以
但是在es6中有了更好的解决方法
[a,b]=[b,a]
ok,可以了是不是和方便这就是解构赋值,这个是非常重要的特别是在做数据交互的时候
如果要定义3个4个5个变量的怎么办是不是就是 let a= let b=...
但是我们也可以这样完成
let [a,b,c]=[3,4,5]
let [a,[b,c]] =[12,[5, 6]];
//注意: 左右两边,结构格式要保持一致
let {name,age, job} = { name:'xiaoming', age:18, job:'码畜' };
let json={ name:'xiaoming', age:18, job:'码畜' };
let {name,age, job}=json
但我们打印name当然就是xiaoming,是不是很方便呢,当然我们也可以起别名
let {name:n,age:g, job:a} = json;
还可以有默认值
let [a, b,c='暂无数据'] = ['aa','bb'];
可以使任何数据类型
let [a, b,c] = ['aa','bb',null];
来一个实际应用吧
先来一个函数
function myfun(){ //to do return { left:10, top:20 } } let {left,top:t}=myfun;
多好!
function show({a,b='默认'}){ console.log(a, b); } show({ a:1 })
function show({a='默认1',b='默认'}){
console.log(a, b);
}
show({})
ok,这就是解构赋值,其实在做ajax数据交互的时候特别有用