老师,我不太理解数值和布尔值的解构赋值

老师,我不太理解数值和布尔值的解构赋值

问题描述:根据下面的代码它也得不到123啊

相关截图:

https://img1.sycdn.imooc.com//climg/6343d9100999c8ed07580150.jpg

问题描述:根据下面代码也得不到true啊

相关截图:

https://img1.sycdn.imooc.com//climg/6343d97709f0251707380108.jpg


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
imooc_慕慕 2022-10-10 17:05:33

同学你好,根据下面的例子解析如下:

https://img1.sycdn.imooc.com//climg/634fa8fd094873a303750114.jpg

因为等号右边是数值或布尔值时,里面没有对应的属性a或d,因此解构时给a或d设置的默认值会生效。

123是数字,它有对应的包装对象(Number)。数字转成对象,就是通过Number实例化一下:

https://img1.sycdn.imooc.com//climg/6343de2a097a012f04130419.jpg

可以解构到toString,底层原理会将其转为对象,此处了解就可以了不常用

https://img1.sycdn.imooc.com//climg/6343dec209fc334403220125.jpg

因此最后的结果是设置的默认值

https://img1.sycdn.imooc.com//climg/6343df4c09211ab103760278.jpg

https://img1.sycdn.imooc.com//climg/6343e02e094d4d6903690275.jpg

此处为扩展知识,了解就好实际开发中很少用。

祝学习愉快~

  • 提问者 张艺兴的宝贝 #1

    所以数值和布尔值进行解构赋值不是为了得到这个数值或布尔值吗?

    2022-10-10 17:13:43
  • imooc_慕慕 回复 提问者 张艺兴的宝贝 #2

    同学你好,不是,该代码执行时浏览器会有默认操作,先将数值转为包装对象,但这个对象中既没有属性,也没有方法(继承来的方法除外)。因此无法对等号左边的变量进行赋值,即无法获得右边的数值或布尔值。

    祝学习愉快~

    2022-10-10 17:27:00
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师