你不了解的解构赋值
前言
今天忙完了说看看面经,然后翻着翻着看见了一篇关于解构赋值的文章
乍一看我说这有啥好讲的,大家不是都会用了,事实是终究是我肤浅了,不过这篇文章确实也没讲啥,但却讲到了解构赋值的核心逻辑
解构赋值
数组解构
1 | let arr = [1,2,3,4,5] |
对象解构
1 | let obj = { |
解构赋值的实质
上面的两段代码大家肯定是手到擒来的,不存在什么问题,但看看下面这段代码呢
1 | let {a,b:c} = {a:1,b:2} |
蒙蔽了吧!!!
最开始我也懵逼啊,什么鬼不因该啊???为什么b是undefined,难道不因该是2嘛?
这简直是小母牛骑摩托——牛逼轰轰啊,我一度怀疑自己的记忆
但仔细想想,解构赋值的核心逻辑嘛,等号右边的属性名是a,等号左边的变量名也是a,所以a的值就是1,
等号右边的属性名是b,等号左边的变量名是c,所以c的值就是2
博主给出的解释是解构赋值赋值的实质上是value只赋value不赋key
然后我突然顿悟了,如果大家还是懵的话,不妨看看我的解释
众所周知,js在传递参数如果没有键名那么它的变量名就是键名,也就是说
1 | let obj = {x, y}; // 等同于 {x: x, y: y} |
这样的话也就意味着
1 | let {a,b:c} = {a:1,b:2} // 等同于 {a:a,b:c} = {a:1,b:2} |
这样看的话大家是不是就能理解了呢
尾言
看来自己学的还是太浅了啊,还得多练,嗯!菜就多练
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 凌晨两点的夜猫子!
评论