解构赋值,它语法是一个 Javascript 表达式,这使得可以将值从数组或属性从对象提取到不同的变量中。
解构赋值在进行数据交互时十分有用。
首先,用一个简单的例子来回顾解构赋值:
let a=8;
let b=17;
let c=6;
console.log(a,b,c);//8,17,6
==> let [a,b,c]=[8,17,6];//一一对应
若将数组改为:let [a,b,c]=[8,[17,6]]; //打印结果没有c,b的结果为17,6。
解构赋值具体用法:
1. let json={
name:"tina",
age:18,
job:"IT"
};
==>进行解构:let {name,age,job}=json;
console.log(name,age,job); //可直接打印
2.解构时进行改名:
let {name,age,job:work}=json;
//此时,打印job时为undefined, 应该打印work。
3.解构时给默认值:
无默认值: let [a,b,c]=["aa","bb"];
加默认值: let [a,b,c=“default”]=["aa","bb"];
//是打印结果为:aa,bb,default;
但是,如果为: let [a,b,c=“暂无”]=["aa","bb",null];
console.log(a,b,c); //aa,bb,null
(打印null是因为null是指有值的;若把null换成undefined,则c会打印成“暂无”,undefined没有值。)
4.用解构赋值来交换位置
let a=7;
let b=8;
[a,b]=[b,a]; //a,b已经被定义过,所以不用再次定义
cosole.log(a,b); //7,8
5.解构赋值关于函数的应用
先定义一个函数:
function pos(){
return {
left:100;
top:100
}
}
let {left,top:getTop}=pos();
//直接用top无法打印,已经被Windows声明过,所以要将其改名。
或者,也可以将其写成: ({left,top}=pos());
// 结果为:100,100