ES6-变量解构赋值

什么是解构?ES6允许按照一定模式,从数组和对象中提取值,然后给变量赋值


数组解构赋值

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

let [a, , c] = [1,2,3]
a //1
c //2

let [a, ...b] = [1,2,3,4,5,6]
a //1
b //[2,3,4,5,6]

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

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



数组的解构是 按位置的模式匹配,解构如果不成功,值为undefined

对象的解构赋值


let {a, b} = {a: '123', b: '456'}
a // '123'
b // 456'

let {a} = {b: '123'}
a //undefined

let {b:a} = {b: '123'}
a //123

let {a, b:c} = {a: '111', b: '222'}
a // 111
c //222

let {a, c:{b}} = {a: '111', c: {b: '222'}}
a //111
b //222

对象解构是基于属性名的匹配,let {a, b:c} = {a: 111, b: 222}  其中变量有a和c,b只是用来匹配的模式而已,根据他寻找到b的值赋值给c,所以a为111,c为222,没有b变量

以上解构式可以理解为 let {a:a , b:c } = {a:111, b: 222} 冒号前面是模式,也就是用来匹配的属性字段名, 冒号后面才是变量名称


字符串的解构赋值


let [a,b,c,d] = '1234'
a //1
b //2
c //3
d //4

let {length: a} = '1234'
a //4


字符串的解构赋值基于把字符串当成一个数组对象(是数组,也可以是对象)


函数参数的解构赋值

function count([x,y]){
    return x+y
}

count([1, 2]) //3


解构赋值设置默认值

let [a,b = 333] = [11]
a //11
b //333

let {a,c = '123'} ={a:'123', b: '456'}
a //123
c //123 

如果没有匹配到,那么就是undefined,这个时候自动会把默认值给变量,这里严格(=== undefined)才会默认值赋值

let [a= 1] = [null]
a //null

以上是不会存在默认值赋值的



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值