1.关于解构和默认值的关系

上面的代码执行后我们可以发现foo函数没有马上执行,其实内部的判断逻辑如下:

也就是说只有右边是undefined才会执行foo(),否则不执行,直接赋值。

2.一些不能被对象解构的情况

不可枚举类型不能被解构成功:

class的对象只能解构它的this上的对象,不能解构方法。

3.解构的时候关于小括号的问题

一般正常正确写法:

对象的第二种方式要用小括号阔起来,因为{}开头会被当成代码块。

解构的时候小括号不能随便使用,在解构的模式中遇到了小括号就会报错,只有在解构的非模式部分才能用小括号,现在我们来一起分析一些错误情况:

我们可以发现,let和解构在一起更容易出错,排除上面的几种会出错的情况,剩下的不会出错的情况就是,非let和非模式部分括号不会出错:

整个匹配结构如下:

background Layer 1 {key1:a}={key1:'aaa'} 模式匹配部分,不能加括号 整个模式部分,内外不能加括号 赋值部分,如果加了小括号,不能和let,var一起使用。 [a]=[1] 整个模式部分,外面不能加括号 赋值部分,如果加了小括号,不能和let,var一起使用。

其他文章

0
我要评论

评论

返回
×

我要评论

回复:

昵称:(昵称不超过20个字)

图片:

提交
还可以输入500个字