博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈ES6中的扩展运算符 (三个点...)
阅读量:6772 次
发布时间:2019-06-26

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

//扩展运算符可以看成是rest参数的逆运算,将一个数组转为用逗号分隔的参数序列console.log(...[1, 2, 3]) // 1 2 3console.log(1, ...[2, 3, 4], 5) //1 2 3 4 5复制代码
//扩展运算符的应用:1.普通的函数调用function push(array, ...items) {  array.push(...items);}function add(x, y) {  return x + y;}var numbers = [4, 38];add(...numbers) // 42复制代码
2.替代 apply 方法调用函数// ES5 的写法Math.max.apply(null, [14, 3, 77])// ES6 的写法Math.max(...[14, 3, 77])// 等同于Math.max(14, 3, 77);// ES5 的写法var arr1 = [0, 1, 2];var arr2 = [3, 4, 5];Array.prototype.push.apply(arr1, arr2);// ES6 的写法var arr1 = [0, 1, 2];var arr2 = [3, 4, 5];arr1.push(...arr2);复制代码
3.合并数组var arr1 = ['a', 'b'];var arr2 = ['c'];var arr3 = ['d', 'e'];// ES5的合并数组arr1.concat(arr2, arr3)  // [ 'a', 'b', 'c', 'd', 'e' ]// ES6的合并数组[...arr1, ...arr2, ...arr3]  // [ 'a', 'b', 'c', 'd', 'e' ]复制代码
4.与解构赋值结合const [first, ...rest] = [1, 2, 3, 4, 5];first // 1rest  // [2, 3, 4, 5]const [first, ...rest] = [];first // undefinedrest  // []const [first, ...rest] = ["foo"];first  // "foo"rest   // []如果将扩展运算符用于数组赋值,只能放在参数的最后一位,否则会报错。const [first, ...middle, last] = [1, 2, 3, 4, 5];  // 报错复制代码
5.将字符串转为数组var str = 'hello';// ES5  var arr1 = str.split('');  // [ "h", "e", "l", "l", "o" ] // ES6  var arr2 = [...str];  // [ "h", "e", "l", "l", "o" ] 复制代码
6.实现了 Iterator 接口的对象任何 Iterator 接口的对象,都可以用扩展运算符转为真正的数组。var nodeList = document.querySelectorAll('div');  // 类数组对象var array = [...nodeList];  // Array复制代码

转载于:https://juejin.im/post/5abb1428f265da237a4d0ffd

你可能感兴趣的文章
让你的app体验更丝滑的11种方法!冲击手机应用榜单Top3指日可待
查看>>
制作60fps的高性能动画
查看>>
724. Find Pivot Index
查看>>
Javascript this详解
查看>>
2018杭州云栖大会,梁胜博士的演讲PPT来啦!
查看>>
静态、动态代理和AOP详解(此坑未填)
查看>>
【刷算法】两个链表的第一个公共结点
查看>>
Vue 响应式核心 observer 源码详解 + 实践
查看>>
Linux下Rust环境配置
查看>>
使用CI、headless Browser、mocha对前端代码进行测试
查看>>
Promise学习笔记
查看>>
Gulp脚本
查看>>
30天自制操作系统-3
查看>>
[CSS]CSS Position 详解
查看>>
持续集成(一):maven私服搭建
查看>>
zabbix监控tomcat多实例(自动发现,主动模式)
查看>>
RecyclerView的刷新分页
查看>>
Spring Boot入门(4)提交表单并存入MySQL数据库
查看>>
用 webpack 和 Parcel 分别搭建第一个 ReactApp
查看>>
springCloud Finchley 微服务架构从入门到精通【四】服务消费者(feign)
查看>>