一,拓展运算符(...)

拓展运算符(...):它会以参数序列的形式输出,更白话讲,比如数组,它可以把数组里面的东西一个一个的输出出来,例如

1 let arr1 =["你","好","V","U","E",1,2]
2 console.log(...arr1,"--------arr1拓展结果")

二,拓展运算符的使用场景

场景一:合并

拓展运算符是可以把两个数组进行合并,例如:

    //数组的合并
1 let arr1 = [0, 1, 2]; //数组1
2 let arr2 = [3, 4, 5, 6]; //数组2
3 let result = [...arr1, ...arr2]; //合并结果
4 console.log(result,"拓展运算符的合并数组结果"); //输出

场景二:数组分割

数组分割:例如下面的例子中,

1     // 数组的分割
2 let [arr1,...arr2] = [1,2,3,4,5,6]
3 console.log("arr1的结果",arr1); //arr1 输出结果是1
4 console.log("arr2的结果",arr2); //arr2 输出结果是一个数组[2,3,4,5,6]
5 console.log("...arr2拓展运算符的结果",...arr2); //...arr2 拓展运算符 输出结果是 2,3,4,5,6

场景三:拷贝

数组拷贝:深拷贝 浅拷贝我这两个还没搞明白,但这里的拷贝,我就单纯的理解为 把一个数组的值 复制 给 另外一个数组 例如:

1     let arr1 = [1,2,3]
2 let arr2 = [...arr1]
3 console.log("arr1的结果是:",arr1); //arr1的输出结果是[1,2,3]
4 console.log("arr2的结果是:",arr2); //arr2的输出结果是[1,2,3]
5 console.log("arr1与arr2是否一样:",arr1===arr2); //输出false

也许有人会有疑问,为什么arr1===arr2为false呢,这个我还得研究研究,我问一个大哥,大哥说是地址不一样了,我得去好好理解下这个地址是什么意思

场景四:对象的使用

拓展运算符也可以针对对象使用,例如:

       // 对象
let {x,y,...z} = {x:1,y:2,a:3,b:4} //let{x,y,...z} 这个的意思是解构 如果不太熟悉的话可以去了解了解
console.log("x是什么:",x); //输出1
console.log("y是什么:",y); //输出2
console.log("z是什么:",z); //输出{a:3,b:4}
console.log("...z拓展运算符是什么:",...z); //输出不出来 控制台打印不出来 应该是不可以这样写

对于拓展运算符我也只暂且了解这么些啦,有补充的可以给我留言,前端的小伙伴们,我们一起加油!

最新文章

  1. JQuery中的工具函数总结
  2. D. Game with Strings
  3. oracl 创建用户
  4. js中的条件语句
  5. dbgrid显示access备注信息
  6. MySQL基础之第11章 插入、更新与删除数据
  7. Android开发之UI更新交互机制与实例解析
  8. oracle 11g R2安装报错ORA-00604及ORA-06553的原因及解决方法
  9. 凯恩斯主义VS货币主义
  10. jq与原生js实现收起展开效果
  11. Activiti第二篇【管理流程定义、执行任务和流程实例、流程变量】
  12. java中==与equel的区别
  13. Java与算法之(12) - 老鼠再闯迷宫(广度优先算法)
  14. 对于一个刚入门的linux运维来说
  15. Invalid bound statement (not found) 找不到mapper 映射文件异常
  16. 为什么ssh 执行完命令以后 挂了, hang , stop respond
  17. 【转】背后的故事之 - 快乐的Lambda表达式(二)
  18. Unity3D常用网络框架与实战解析 学习
  19. [翻译]C# BAD PRACTICES: Learn how to make a good code by bad example---C#:如何将坏的代码重新编译为好的代码
  20. pandas入门——loc与iloc函数

热门文章

  1. gets,fgets,puts,fputs,scanf,printf的作用,联系和区别
  2. DDD-领域驱动(三)-聚合与聚合根
  3. KubeEdge 1.12版本发布,稳定性、安全性、可扩展性均带来大幅提升
  4. prometheus监控实战
  5. 30.Serializers模块源码解析
  6. VS使用正则表达式删除程序中的空行
  7. linux-web基础
  8. 创建base公共组件
  9. Emgu实现图像分割
  10. 2022-11-14 Acwing每日一题