解构赋值非常有用!
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();