数组的解构赋值
let arr = [1,2,3,4,5]
let [item1,item2] = arr
console.log(item1,item2) // 1,2 数据2之后的345被垃圾回收机制回收
let [item1, item2,...list] = arr
console.log(list) // 3,4,5 利用... 把其他的数据赋值到list上 ""..."" 用于取出参数对象中所有可遍历属性,拷贝到当前对象中
let [item1,,item3] = arr
console.log(item3) //3 想要跳过的值 可以用逗号跳过
//set([1,2,3,4,5]) 相同用法 map也是
objcet 的结构赋值
let arr = {
w:100,
h:200,
list:{
name:"王"
},
listArr:[1,2,3]
}
let {w,h,list:{name}} = arr
// object 解构赋值的时候 变量名需要对应数据源中的 Object中数组中的数值可以任何命名
练习
1. 一个函数需要传入很多参数,是否可以利用解构赋值来简化操作?
let a={name:'小明',age:18}
function wuKongYouLook({name='shyno',age=17}={}){
console.log(name,age)
}
wuKongYouLook(a)//小明,18 let {name='shyno',age=17} = {name:'小明',age:18}
wuKongYouLook({name:'小红'}) //小红,17 let {name='shyno',age=17} = {name:'小红'}
wuKongYouLook({}) //shyno,17 let {name='shyno',age=17} = {}
wuKongYouLook() //shyno,17 let {name='shyno',age=17} = null或者undefined
可用解构赋值的方法来做 ,可以设置默认值