专栏名称: freeCodeCamp
FreeCodeCamp.cn官方公众号
目录
相关文章推荐
人力资源心理学  ·  自从开始用 Deepseek ... ·  昨天  
高绩效HR  ·  股权架构设计与全面激励工作坊 ·  昨天  
HR新逻辑  ·  从战略规划到战略解码,到KPI执行落地! ·  2 天前  
51好读  ›  专栏  ›  freeCodeCamp

解构赋值

freeCodeCamp  · 公众号  ·  · 2018-04-09 11:16

正文

点击蓝字关注我们

很多人可能和我一样,第一次看到这个词的时候摸不着头脑。但是冷静再看一遍好像明白了,“把数据结构分解开分别进行赋值”。

我们先看几个小例子:

相信大家不难从上述的几段代码案例总结出来解构赋值的规律,我总结到如下几点:

  1. 解构主体为数组或者对象。

  2. 解构源必须具备 Iterator 接口或者经过转换之后具备 Iterator 接口。(什么是 Iterator 可看我接下来文章)

  3. 数组解构是按顺序进行解构(有序),对象是通过方法名或者属性名进行结构(无序)。

  4. 数组解构解构源会被转换为数组,对象解构解构源会被转换成对象。

  5. 解构对象时关键词解构会从当前实例持续向上访问原型链直到查不到返回 undefined。

以上总结包含了大部分基础场景我们会遇到的情况,但还是有更多的细节需要我们注意下:

我们可以嵌套解构

我们也可以改变解构的变量名

解构赋值可以设置默认值

数组解构赋值对于不可迭代实例将报错

数组解构可以跳跃赋值

数组解构可以截取

那它有哪些用途呢?

1、交换变量,是一种很酷的玩法

2、接受函数返回的多个值

3、接受不按顺序的函数参数

接口封装调用函数再也不用考虑参数顺序了,以后我们在封装方法提供工具包时就可以让我们的关注点放在业务本身而无需关注参数传入的顺序上。这是多么美好的一件事。 4、设置默认值

5、为模块化编程提供优雅的模块引入方式

6、函数的参数列表可以自动装载成数组

7、删除对象某一属性

8、合并对象(浅层赋值)

。。。还有我没有发现的好处。。。

以上就是我对解构赋值的一些总结,希望能对还没入门的你提供到一些帮助。es6给我们提供了很多优美的语法糖,让我们编起码来更优雅,更易读(前提懂es6),更规范。


长按识别二维码,了解更多精彩内容







请到「今天看啥」查看全文