es6-02-3. 字符串、数值、布尔值、函数参数的解构赋值

字符串的解构赋值:

  • 字符串解构赋值原理,字符串–>字符数组–>类数组解构
const [a,b,c,d,e,f,g] = "Hello"
console.log(a);//H
console.log(b);//e
console.log(c);//l
console.log(d);//l
console.log(e);//o
console.log(f);//undefined
  • 类似数组的对象都有一个length属性,因此这个属性也可以被解构赋值
let {length:len}="sssssd"
console.log(len);///6

数值和布尔值的解构赋值:

  • 解构赋值时,如果等号右边是数值和布尔值,会先将他们转成对象。
let {toString: s} = 123;
console.log(s===Number.prototype.toString);//true

let {toString: s1} = false;
console.log(s1===Boolean.prototype.toString);//true
  • 数值和布尔值的包装对象都有toString属性,因此s能取到值
  • 解构赋值的规则是,只要等号右边的值不是对象或数组,就先将其转换为对象.由于undefined和null无法转换为对象,所以对他们进行解构赋值时都会报错.

 let{prop:x} = undefined
 //TypeError: Cannot destructure property 'prop' of 'undefined' as it is undefined.
 let{prop:y} = null
 //TypeError: Cannot destructure property 'prop' of 'null' as it is null.

函数参数的解构赋值:

 函数的参数也可以使用解构赋值
function add([a,b]){
    return a+b;
}

console.log(add([1,3]));//4
//正常
function move({x=0,y=0}={}){
    return [x,y]
}
move()
// 报错TypeError: Cannot read properties of undefined (reading 'x')
function move({x=0,y=0}){
    return [x,y]
}
move()
//正常
function move({x=0,y=0}){
    return [x,y]
}
move()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值