博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ES6:扩展运算符
阅读量:6244 次
发布时间:2019-06-22

本文共 1144 字,大约阅读时间需要 3 分钟。

REST参数-扩展运算符(三个点)...

function fn(...arg){    console.log(arg);//[1,2,3,4,5]    console.log(...arg);//1,2,3,4,5}fn(1,2,3,4,5)复制代码
1.替换apply
扩展运算符可以展开数组,代替apply()将数组转化为函数参数的需求。
//ES5Math.max.apply(null, [1, 3, 5]);//ES6Math.max(...[1, 3, 5]);  复制代码
2.合并数组
//ES5var arr1 = [8]var arr2 = [9,11,12,13]arr1.push(arr2);//[8,[9,11,12,13]]Array.prototype.push.apply(arr1,arr2);//[8,9,11,12,13]// ES6arr1.push(...arr2);console.log(arr1)//[8,9,11,12,13]//可以直接写var newArr = [...arr1, ...arr2]console.log(newArr)复制代码
3.结构赋值
var [a, ...b] = [2,3,4,5,6];console.log(a, b);//2 [3,4,5,6]var [c, ...d] = [2];console.log(c, d);//2 []var [...x,y] = [2,3,4,5,6];//Uncaught SyntaxError: Rest element must be last element复制代码
当扩展运算符用于数组赋值,只能放在参数的最后一位,否则会报错。
*对象的扩展运算符
var {a, b, ...c} = {a : 12, b : 23, d : 34, c : 345}//c ->{d:34,c:345}var obj = {name : 'coco'}var obj1 = {age : 27}var newObj = {...obj, ...obj1};var newObj1 = {obj, obj1};console.log(newObj);//{name: "coco", age: 27}console.log(newObj1);//{name: "coco"} {age: 27}复制代码
*把类数组转化为数组
var strArr = [...'kiwi']console.log(strArr)//["k","i","w","i"]复制代码
扩展运算符还解决了JavaScript 将 32 位 Unicode 字符,识别为 2 个字符的问题。

转载地址:http://gppia.baihongyu.com/

你可能感兴趣的文章
复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?
查看>>
java spring cloud版b2b2c社交电商-配置中心svn示例和refresh
查看>>
回顾我的三年前端|掘金技术征文
查看>>
如何保障微服务架构下的数据一致性?
查看>>
开源框架和开源项目
查看>>
算法学习之路|二分图的最大匹配—匈牙利算法(Dfs实现)
查看>>
iOS UIView高级动画 关键帧动画
查看>>
java版spring cloud+spring boot+redis多租户社交电子商务平台 (六)分布式配置中心(Spring Cloud Config)...
查看>>
一个初学者是如何制作移动端B站画友社区的
查看>>
互联网分布式微服务云平台规划分析--平台整体规划
查看>>
Swift对象转为C指针
查看>>
Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)
查看>>
ThinkSNS系统升级,版本多样化
查看>>
ecshop使用smtp发送邮件
查看>>
RubyInstaller
查看>>
21. SQL -- TSQL架构,系统数据库,文件,SQL 认证,TSQL语句
查看>>
CentOS6.0添加163和epel源
查看>>
使用组策略与脚本发布Office 2010
查看>>
Open××× 分配固定IP
查看>>
elk+redis centos6.6安装与配置
查看>>