ES6 解构赋值
2018-12-14 本文已影响0人
祝名
一.数组解构赋值
1. 将结构解开,分别赋值。可以利用变量的解构赋值特点,方便的实现两个变量的值的互换。
- 值的互换
let x = 1;
let y = 2;
[x, y] = [y, x];
2. 遵循“模式匹配” 的原则,只要左右结构格式一致,就能赋值
let [a,b,c] = [12,5,6];
let [a,[b,c]] = [1,[2,3]];
二. 对象解构赋值
1. 对象解构赋值的时候与顺序无关,只看对应的属性名和变量名。
url与name是按照属性名进行赋值匹配的
let json = {
name:'strive';
age:18;
};
let {name,age} = json;
console.log(name,age);
2. 解构时也可起别名
let json = {
name:'strive';
age:18;
};
let {name:n,age:a} = json;
console.log(n,a);
将数组中的length属性解构出来
4. 解构时可以给默认值 let [a,b,c='默认值'] = ['xxx','xxx'];
let [a,b,c='暂无数据'] = ['aa','bb'];
console.log(a,b,c);-->输出:aa,bb,暂无数据
5. null与undefined
let[a,b='暂无数据'] = [12,undefined];
-->输出暂无数据
let[a,b='暂无数据'] = [12,null];
-->输出null
6. 封装的函数或数组,直接调用返回值使用即可。
function getPost(){
return{
left:10,
top:20
}
let {left,top:t} = getPost();
console.log(left,t);
function show({a,b='默认'}){
console.log(a,b);
}
show({a:1});
-->输出: 1 默认
三. 字符串解构赋值
let [a,b,c,d] = 'Arya';
console.log(b);
-->r
- 也可解构length属性
let {length:len} = 'abcd';
console.log(len);
-->4