• 对象中的扩展运算符(…)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中
let bar = { a: 1, b: 2 };
let baz = { ...bar }; // { a: 1, b: 2 }
//上述方法实际上等价于:
let bar = { a: 1, b: 2 };
let baz = Object.assign({}, bar); // { a: 1, b: 2 }  //如果用户自定义的属性,放在扩展运算符后面,则扩展运算符内部的同名属性会被覆盖掉。
let bar = {a: 1, b: 2};
let baz = {...bar, ...{a:2, b: 4}};  // {a: 2, b: 4}//基础数据类型是按值访问的,常见的基础数据类型有Number、String、Boolean、Null、Undefined,这类变量的拷贝的时候会完整的复制一份;引用数据类型比如Array,在拷贝的时候拷贝的是对象的引用,当原对象发生变化的时候,拷贝对象也跟着变化
let obj1 = { a: 1, b: 2};
let obj2 = { ...obj1, b: '2-edited'};
console.log(obj1); // {a: 1, b: 2}
console.log(obj2); //  {a: 1, b: "2-edited"}
//上面这个例子扩展运算符拷贝的对象是基础数据类型,因此对obj2的修改并不会影响obj1,如果改成这样:
let obj1 = { a: 1, b: 2, c: {nickName: 'd'}};
let obj2 = { ...obj1};
obj2.c.nickName = 'd-edited';
console.log(obj1); // {a: 1, b: 2, c: {nickName: 'd-edited'}}
console.log(obj2); // {a: 1, b: 2, c: {nickName: 'd-edited'}}
//这里可以看到,对obj2的修改影响到了被拷贝对象obj1,原因上面已经说了,因为obj1中的对象c是一个引用数据类型,拷贝的时候拷贝的是对象的引用
  • 扩展运算符同样可以运用在对数组的操作中
//可以将数组转换为参数序列
function add(x, y) {return x + y;
}
const numbers = [4, 38];
add(...numbers) // 42//可以复制数组
const arr1 = [1, 2];
const arr2 = [...arr1];//扩展运算符可以与解构赋值结合起来,用于生成数组
const [first, ...rest] = [1, 2, 3, 4, 5];
first // 1
rest  // [2, 3, 4, 5]//扩展运算符还可以将字符串转为真正的数组
[...'hello']
// [ "h", "e", "l", "l", "o" ]// arguments对象
function foo() {const args = [...arguments];
}

Es6扩展运算符(...)的使用相关推荐

  1. ES6扩展运算符的几个小技巧

    es6扩展运算符,也就是...  ,作用是将一个数组转为用逗号分隔的参数序列. 那么问题来了,我们为啥要用这么奇怪的东东涅,当然因为它能大大提高我们的开发效率.所以,可别小看这三个点. 1.复制数组( ...

  2. ES6 - 扩展运算符与Object.assign对象拷贝与合并

    文章目录 扩展运算符能做什么? 什么是深浅拷贝 使用ES6扩展运算符 对象浅拷贝 对象合并 Object.assign Object.assign详解 Object.assign()实用 给对象添加属 ...

  3. php es6写法,ES6...扩展运算符(示例代码)

    在数组中的应用 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,++将一个数组转为用逗号分隔的参数序列++. console.log(...[1, 2, 3]) // 1 ...

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

    文章目录 对象扩展运算符 解构赋值 扩展运算符 数组扩展运算符 替代函数的apply() 方法 扩展运算符的应用 复制数组 合并数组 与解构赋值结合 字符串 实现了Iterator接口的对象 对象扩展 ...

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

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

  6. ES6——扩展运算符(...)

    文章目录 一.扩展运算符(...) 二.数组扩展运算符的应用 1.合并数组 2.与解构赋值结合 3.字符串转数组 4.实现了 Iterator 接口的对象 5.Map 和 Set 结构, Genera ...

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

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

  8. ES6——扩展运算符/三点运算符(...)

    扩展运算符(spread)是三个点(...). 数组的扩展运算符 对于数组来说,它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. console.log(...[1, 2, 3]) ...

  9. ES6 “...“ 扩展运算符 (点点点)

    1.定义 扩展运算符(spread)是三个点(-),它如同rest参数的逆运算,将一个数组转为用逗号分隔的参数序列. 2.使用 console.log(...[1,2,3]); //1 2 3 con ...

  10. ES6扩展运算符用法

    扩展运算符可以将数组或者对象转为用逗号分隔的参数序列 扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象中 用法: 1.将一个数组放入另一个数组中 var middle = [3, ...

最新文章

  1. 5月第3周业务风控关注 |网信办公布整治教育类应用的成果 关闭“作业狗”等20余款应用...
  2. 监听Settings的值的变化
  3. Ubuntu下使用中文语言
  4. LinkedBlockingQueue使用
  5. 手把手教Jsp上传文件(FileUpload+Servlet)
  6. java读取配置文件properties_让我来告诉你Spring框架是怎么样通过properties来获得对象的?...
  7. 微信红包封面开放平台序列号
  8. 页面浏览pdf或图片iframe
  9. excle计算机基础测试,计算机基础测试题--Excel--雨课堂版本--手机版课件.pptx
  10. python中莱布尼茨计算圆周率_python圆周率盘算(带进度条)
  11. 【JVM】 TLAB到底是干什么的
  12. 管理员才可以运行的:chkdsk:磁盘管理 sfc /scannow检测系统文件
  13. Python爬虫学习笔记-第二课(网络请求模块上)
  14. SQL server 数据库 修改学生数据表
  15. 分享从零开始学习网络设备配置(华为ensp版本)------任务1.2 使用eNSP搭建和配置网络
  16. Ecahrts图例后添加百分比和数据
  17. 计算机科学(Computer Science)简要分类
  18. 谈谈python文件管理中的file、seek、truncate
  19. python pdfminer linux 版本下载_Python利器 PDFMiner python实现PDF转换TXT(附代码)
  20. SPSS-卡方检验-论文常用

热门文章

  1. 区块链Fabric 之共识机制
  2. php去除某个字符,php怎样去掉某个字符串
  3. laravel接口 接口文档
  4. plc中异步和同步通信的介绍
  5. HTML5期末大作业:电影介绍类型网站设计——《盗梦空间》8页 HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计
  6. TCP 为什么三次握手而不是两次握手(正解版)
  7. “嫦娥五号”发射成功,文昌鲁能希尔顿酒店提供极佳观测点
  8. Linux NFS 共享及权限控制
  9. tp5框架时间范围查询
  10. Android 在Launcher桌面添加应用快捷图标(适用于Android 7.0(API24) 及以下)