参数扩展与收集

ES6 增加有一个特殊符号 , 拓展运算符 ’ … ’ 即三个点。
它的使用如下 :

扩展参数

… 扩展运算符能将可迭代对象转换为逗号分隔的参数系列

如将数组拆开,其位置在传值体前(实参,需把自身拆开的变量)前

const arr = ['手机','电脑','人一个']
...arr  //  => '手机','电脑','人一个'
应用场景:

1. 如果将数组作为参数传入;则传入的只有一个参数,参数是一个数组;如果传入参数时给数组 前加上扩展运算符 如…arr;如会将数组解构出来,将每个元素做为参数传入;

function fun4() {console.log(arguments);
}
fun4(...[1, 2, 3]) //  { '0': 1, '1': 2, '2': 3 }fun4([1, 2, 3])  // { '0': [ 1, 2, 3 ] }

2.[…arr1,…arr2] 可将两个数组(字符串也可以)合并在一起;如果只有一个数组,则可以复制数组,返回给新数组;

console.log([...[1, 2, 3], ...[4, 5, 6]]);   // [ 1, 2, 3, 4, 5, 6 ]

3. 可以将伪数组转换成数组,包括arguments;

function fun4() {console.log(...arguments);
}
fun4(1, 2, 3)   // 1 2 3

收集参数

在构思函数定义时,可以使用扩展操作符把不同长度的独立参数组合为一个数组。这有点类似arguments 对象的构造机制,只不过收集参数的结果会得到一个 Array 实例

function fun5(...params) {console.log(params);  // [ 1, 2, 3, 4 ]
}
fun5(1, 2, 3, 4)function fun6(a, ...params) {console.log(a)console.log(params)
}
fun6(1, 2, 3) // 1  //  [2,3]
fun6(1) // 1 []
fun6()  // undefined  []

注意

扩展运算符用于形参和其他参数一起使用时必须放在最后

fun(...a , b )   // 报错
fun(a , ...b  ,c)  // 报错

js --- 扩展运算符相关推荐

  1. js扩展运算符的使用

    一.对数组进行操作(es6) 1.进行数组的复制 {// 扩展运算的使用// 进行数组的复制const list = ['a','b','c','d'];let list1 = [...list];/ ...

  2. js扩展运算符的应用

    (1)复制数组 const a1 = [1, 2]; // 写法一 const a2 = [...a1]; // 写法二 const [...a2] = a1; (2)合并数组 const arr1 ...

  3. c语言扩展运算符是什么,扩展运算符(spread)是三个点(…)

    扩展运算符(spread)是三个点(-),将一个数组||类数组||字符串转为用逗号分隔的序列. js中用来对数组进行操作,把数组里面的东西统统拿出来 一.展开数组 //展开数组 let a = [1, ...

  4. 扩展运算符的作用以及使用场景

    扩展运算符 对象的扩展运算符(-)用于取出参数对象中的所有可遍历属性,拷贝到当前对象中 在JS中,扩展运算符(spread)是三个点-,剩余运算符(rest)同为三个点(-) 我们可以把-理解为展开运 ...

  5. js数组的方法和扩展运算符

    示例使用的数组 var arr = [1, 2, 3]; ES5 数组方法 不改变原数组 函数 说明 示例 Array.isArray() 判断一个值是否为数组 Array.isArray(arr); ...

  6. js ... es6中三个点是什么意思 真名叫扩展运算符

    前言:求真 求实 东西实现了 居然不知道怎么做完的 有点恐怖 背景 js去重 let inCmpGroup = [...new Set(this.selectedData.map(x => x. ...

  7. js数组合并、去重、降维(ES6:扩展运算符、Set)

    js数组合并.去重.降维 1.合并 1.1使用concat()进行合并数组 function get_concat(collection_a, collection_b) {return collec ...

  8. JS之ES6扩展运算符三个点(...)用于剥离{} 获取属性值

    1.用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中 let bar = { a: 1, b: 2 }; let baz = { ...bar }; // { a: 1, b: 2 } 等价于 ...

  9. JS:ES6-5 rest参数与扩展运算符

    rest参数概述: ES6 引入 rest 参数,用于获取函数的实参,注意与arguments对象的区别 rest参数只包括没有给出名称的参数,而arguments包含所有参数 arguments 对 ...

最新文章

  1. golang中的panic
  2. 神经网络中的激活函数的作用和选择
  3. 百万级并发 Node.js也能行
  4. Apache SkyWalking的架构设计【译文】
  5. nuttx linux 编译,linux下建立nuttx开发环境
  6. html如何添加时钟效果,基于HTML5+CSS3实现简单的时钟效果
  7. 怎么有效提高执行力?
  8. 阿里云如何购买mysql_如何选购配置阿里云数据库RDS MySQL的流程 新手必看
  9. flutter全局状态管理Provider
  10. 个子矮s弯如何看点打方向图解_科目二s弯怎么看点打方向技巧图解
  11. 身份证读取设备开发解决方案:2、Android下通过usb转串口读取身份证信息
  12. rsync - 客户端常用参数
  13. ZYNQ PS GPIO MIO 基础知识
  14. 手机为什么显示服务器升级,支付宝提示的支付服务升级是什么意思?
  15. python集合增加元素_python集合的新增元素方法整理
  16. 移动创业风向标:Apple 2010年度移动应用榜单
  17. 读书笔记之费曼物理讲义第二册
  18. 腾讯 2020年新增 20 亿行代码,C++蝉联腾讯最受欢迎的编程语言
  19. 支付宝小程序码管理生成
  20. 炒币机器人:囤币,我们是“一囤到底”还是“半路抛弃

热门文章

  1. 《古风·三》 李白
  2. VS2017报错未将对象引用设置到对象的实例的解决办法
  3. mac电脑怎么录屏?2招轻松搞定!
  4. docker 运行java程序_Docker:在容器中运行Java应用程序
  5. Linux命令 ps --ppid使用的一个坑
  6. 四川子苗电商:抖音如何赚钱视频?
  7. 与比亚迪联手骚操作,滴滴造车能上演一出什么好戏?
  8. Java项目线上问题排查
  9. 基于机器学习的天气预测
  10. FFmpeg 使用 Nvidia GPU 进行转码加速