解构运算符的理解与运用
解构符号
前言
最近一直在学 JavaScript,看到了 ES6 中的解构符号,觉得这个给我们的代码简洁性带来了一个飞跃式的提升,而且它已经运用在了企业开发中,假如未来你工作中,别人在用,你却读不懂别人的代码,这造成的影响还是很大的。因此,好好学习一下吧。
你可以不用,但是你不能不懂✔
JavaScript ES6 中,有很多特性都是为了简化代码,方便程序员去书写的。解构运算符就是其中很好的特性,它可以通过减少赋值语句的使用,或者减少访问数据下标、对象属性的方式,使得代码更加简洁,增强了代码的可读性。
解构符号的作用
解构赋值是对赋值运算符的扩展,他是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值
ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构
使用方法
基本使用
嵌套使用
忽略
不完全解构
剩余运算符
字符串
解构默认值
交换变量的值.
解构赋值的应用
浅谈应用
提取 json 数据
上面列出了几种解构赋值的应用,其中我们最常用的应该是第二种,提取 json 数据,后端传给前端的数据就是 json 数据,前端通常要将数据赋值给一个对象,就是使用的这种方法。
可扩展运算符...
我在 leetcode 上刷题的时候使用过,我是用arr.push(...arr1)
来合并两个数组的,有点像上面的浅克隆与合并。比起以往我们合并数组的操作,这个简直不要太简单。
第 88 题,合并两个有序数组。
...
这个运算符是将数组中的数据遍历出来,并拷贝到当前对象当中。
arr.push(...arr1)
这个方法会将 arr1 的数组元素全部解析出来,然后依次添加到 arr 中去,完成两个数组的合并。
交换变量值
再来看看交换变量值这个应用,我依稀记得一位学长的面试题:不占用额外内存空间的情况下,交换 a 与 b 的值。当时有两种解法,一是使用异或,二是用数学方法,将 ab 相加,再分别减之,(a=a+b,b=a-b,a=a-b),现在使用解构符号的这个方法[a,b] = [b,a]
,是不是也可以呢?
版权声明: 本文为 InfoQ 作者【是乃德也是Ned】的原创文章。
原文链接:【http://xie.infoq.cn/article/8d9bab4f87eb0aa0c1bf36cf2】。文章转载请联系作者。
评论