解构赋值非常有用!
1.最简单的一种 数组解构
let [a,b,c]=[1,2,3]; console.log(a,b,c) 结果为1,2,3
let [a,b,c]=[1,[2,3]]
console.log(a,b,c) 结果为1,[2,3],undefined
解构赋值的话前后结构要一致
2.对象解构
let {name,age,job}={name:"yu",age:"18",job:"manong"}
其中你要看作是这样的
let{name:name,age:age,job:job}={name:"yu",age:"18",job:"manong"}
前面一个是结构,后面一个是才是变量,
所以解构后是
name="yu",
age="18",
job="manong";
如果是这样的话
let{name:name1,age:age1,job:job1}={name:"yu",age:"18",job:"manong"}
解构出来的结果是
name1="yu";
age1:"18",
job1:"manong"
name,age,job是没有值的。
解构有很多用途
解构的时候可以给默认值
let[name,age,job="manong"]={"yu","18"}
结果是name:'yu',age:'18',job:'manong';
let[name,age,job="manong"]={"yu","18",undefined}
结果是name:'yu',age:'18',job:'manong';
let[name,age,job="manong"]={"yu","18",null}
结果是name:'yu',age:'18',job:null;
注意解构的时候null和undefined是不一样的
null表示的是有值,undefined表示的是没有值
解构交换两个变量的值
let a=12,b=5;
[a,b]=[b,a];
结果为a=5,b=12;
其实
用途一
import {a,b,c} from './mod' 这个就是解构
用途二
function show({a,b="默认值"}){}
show({a:12})
但是注意如果,
show({})这样写是没有错误的,结果是a=undefined,b="默认值"
show() 这样会报错
可以这样实现
function show({a,b="默认值"}={}){}
show();