解构赋值——让声明更简单
基本格式:
let [a,b,c] = [1,2,3];
//相当于是:
let a = 1;
let b = 2;
let c = 3;
注意点
- 通常情况下左右解构要一致;(数组就是数组,json就是json,个别会有不一样,例如字符串)
- 等号的右边必须有内容,而且必须合法(例如{1,2}就是非法的,非数组也非json);
- 声明和赋值必须在一句话内完成。(例如:let [a,b] ; [a,b] = [1,2] ; 就是错误的)
不完全解构的情况:
因为右边的值并没有被完全赋予左边变量,所以属于不完全解构
let [x,y] = [1,2,3];
x //1;
y //2;
字符串的解构:
当然也可以不完全解构
let [a,b,c,d,e] = 'hello';
a //h;
b //e
c //l
d //l
e //o
当然如上都是结构赋值的基本格式
其常用作用总结如下:
1.交换变量;
let a = 1;
let b = 2;
[a,b] = [b,a];
console.log(a,b) //2,1
2.函数执行之后,返回多个值(数组、对象),然后解构出来
let a = 1;
let b = 2;
function aaa(a,b){
return [a,b]
}
[x,y]=aaa(a,b)
console.log(x,y) //1,2
3.从Json中提取数据
let data = {
name:'san',
num:[1,2],
status:1
}
let {name,num:number,status} = data;
console.log(name,number,status) //san [1,2] 1
当然不止这些,更对的好的用途还是要在使用中发现