es6 中 const {attr} = obj 比 const attr = obj.attr 好在哪里?

难道只是方便同时多个变量的赋值?

阅读 3.1k
2 个回答

好处有很多。

第一,能少写一次 attr

使得代码量更少,更优雅。

第二,减少Cannot read property xxx of undefined 类型的错误
const {attr} = obj 可以写成 const {attr} = obj || {}

万一你的objundefined,如果这样写const attr = obj.attr 就炸了。const {attr} = obj || {}可以给你缓和的余地

第三,可以同时定义多个变量
const {attr1, attr2, attr3} = obj 
等同于
const attr1 = obj.attr1
const attr2 = obj.attr2
const attr3 = obj.attr3
第四,可以默认结构值,解构出的undefined值可以被默认值覆盖
const {attr1 = '', attr2 = 1, attr3 = true} = obj 

emmmmm....可以说只是一种语法糖吧(少写几行代码不就可以多看几集新番了嘛)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题