es6对象赋值

1.解构赋值

let obj={
n1: 'p1',
n2: 'p2'
}
// //传统的写法 定义变量 使n1=obj.n1 n2=obj.n2
// let n1=obj['n1']
// let n2=obj['n2']

//变量名==属性名时
let { n1, n2}= obj //其实是它的简写:let {n1:n1,n2:n2}=obj={ n1:'p1',n2:'p2'}
console. log( n1, n2)

//变量名不等于属性名时
let { n1: x1, n2: x2}= obj
console. log( x1, x2) //p1 p2


let { n, m: m1}={ n: 'nn', m: 'mm'}
console. log( n, m1) // nn mm

2.对象数组嵌套


let obj={ a1:[ 1, 2, 3], a2: '123'}
//x=obj.a1[0]
//y=obj.a1[1]
let { a2, a1:[ x, y]}= obj
console. log( a2, x, y) //'123' 1 2


let obj1={ s:{ n: '1'}, n:[ 1, '2', 3, '4'], m:[[ 1]]}
let { m:[ x1], s:{ n}, n:[,... m2]}= obj1

console. log( x1, n, m2) // [1] '1' ['2',3,'4']

3.默认值

// let {x,y}={y:2}
// console.log(x,y)// undefined 2


let { x= 1, y}={ y: 2}
console. log( x, y) // 1 2

// let {m:n}={} //m:undefined
// console.log(n) //undefined


let { m: n= 4}={} //m:undefined
console. log( n) //4


//默认值生效的条件是对象的属性值必须是undefined 严格等于===
let { a: cc= 11}={ a: 12}
console. log( cc) //12


// let {v=3}={v:undefined}
// console.log(v) //3
let { v= 3}={ v: null}
console. log( v) //null



//如果解构模式嵌套的是一个对象,而且这个子对象所对应的父属性不存在,那么就会报错了
let { f:{ b}}={ b: 'bb'}
console. log( b) //Cannot destructure property `b` of 'undefined' or 'null'.



//说明:如果赋值的时候赋的不是一个对象,而是其他的数据类型的值,会将其他的数据类型的
//转换为对象
let { x, y}= 1
console. log( x, y) //undefined undefined



// 把1转换为对象咋转的呢
console. log( Object( 1)) //==>{__proto__:Number}



console. log( Object([ 1, 2, 3]))
let { length}=[ 1, 2, 3]
console. log( length) // 3


let { a}={ a: 'a'}

//JavaScript引擎会将{a}理解成一个代码块
//为了避免错误,不要讲{}写在行首


// 注意 :null 和undefined 是无法转换为对象的,所以解构赋值时会报错

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋哈哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值