es6解构赋值总结

es6解构赋值总结

数组赋值(根据数组顺序依次赋值)

let a = 1,b = 2,c = 3  //多个变量定义赋值

let [a,b,c] = [1,2,3]  //等同let a = 1,b = 2,c = 3

let [a,b,c] = [1,2]  // c = undefined

let [a,b,c=33] = [1,2,3]  // c=3。可以设置默认值,33是默认值,会被数组值覆

let [a,b,c=33] = [1,2,null]  // c=null

对象赋值(根据属性名赋值)

let user = {
    name: 'jmh',
    sex: 'male'
}

let {name,sex} = user  // name = 'jmh',sex='male'

let {sex} = user  // sex='male'

字符串赋值(等同数组)

let [a,b,c] = 'jmh' // a='j',b='m',c='h'

for...of 遍历map对象应用数组解构

let mapObj = new Map()  // 初始化map需要一个二维数组或者空数组
mapObj.set('name','jmh')
mapObj.set('sex','male') 
// 等同于 new Map([['name', 'jmh'], ['sex', 'male']])
/* Map(2)    
[[Entries]]
0: {"name" => "jmh"}
1: {"sex" => "male"}
size: 2
__proto__: Map */
console.log(mapObj) 

for(let i of mapObj) {  // mapObj = new Map([['name', 'jmh'], ['sex', 'male']])
  console.log(i)  // (2) ["name", "jmh"]
                  // (2) ["sex", "male"]
}
// 利用数组的解构赋值
for(let [key,val] of mapObj) {
  console.log(key)  
  console.log(val)            
}
posted @ 2021-01-31 11:21  hellojinjin123  阅读(115)  评论(0)    收藏  举报