Js中的三个点(…)是什么

我们在看js代码时经常会出现(…)三个点的东西,它究竟是什么意思?又有何用处?
下面我就给大家分享一下三个点的那些事

什么意思?

三个点(…)真名叫扩展运算符,是在ES6中新增加的内容,它可以在函数调用/数组构造时,将数组表达式或者string在语法层面展开;还可以在构造字面量对象时将对象表达式按照key-value的方式展开

字面量一般指[1,2,3]或者{name:‘chuichui’}这种简洁的构造方式,多层嵌套的数组和对象三个点就无能为力了

说白了就是把衣服脱了,不管是大括号([])、花括号({}),统统不在话下,全部脱掉脱掉!

// 数组
var number = [1,2,3,4,5,6]
console.log(...number) //1 2 3 4 5 6
//对象
var man = {name:'xiaoming',height:170}
console.log({...man}) / {name:'xiaoming',height:170}

有什么用?

它的用处很广泛,我们随处都可以看到,下面是几个常见的例子

复制用它

//数组的复制
var arr1 = ['hello']
var arr2 =[...arr1]
arr2 // ['hello']
//对象的复制
var obj1 = {name:'xiaoming'}
var obj2 ={...arr}
obj2 //  {name:'xiaoming'}

合并用它

//数组的合并
var arr1 = ['hello']
var arr2 =['xiaoming']
var mergeArr = [...arr1,...arr2]
mergeArr  // ['hello','xiaoming']
// 对象分合并
var obj1 = {name:'xiaoming'}
var obj2 = {height:170}
var mergeObj = {...obj1,...obj2}
mergeObj // {name: "xiaoming", height: 170}

字符转数组用它

var arr1 = [...'hello']
arr1 // ["h", "e", "l", "l", "o"]

函数传参用它

可以和正常的函数相结合,灵活使用

function f(v,w,x,y,z){ }
var args = [2,3]
f(1,...args,4,...[5])

当我们想把数组中的元素迭代为函数参数时,用它!

function f(x,y,z){}
var args = [1,2,3]
f(...args)// 以前的方法
f.apply(null,args);

Js中的三个点(...)是什么相关推荐

  1. js 中的三个等号

    Js 中 三个等号(===) 和两个等号(==)的区别 简单来说就是使用"=="时,如果两边类型不同,js引擎会把它们转换成相同类型然后在进行比较,而"===" ...

  2. JS中出现三个点(...)的作用是什么

    三个点(...)真名叫扩展运算符,是在ES6中新增加的内容,它可以在函数调用/数组构造时,将数组表达式或者string在语法层面展开:还可以在构造字面量对象时将对象表达式按照key-value的方式展 ...

  3. js中的“...”三个点

    在函数形参里面出现,表示的是可变参数,即表示的传入的参数个数是可变. 传入多少个参数都被放到一个数组里. function demo (...values) {console.log(values); ...

  4. js中比较三个数字的大小

    function getMax(num1,num2,num3){   var max = num1;//假设num1是最大的   //比较num1和num2,产生一个最大值max   if(num1& ...

  5. html中的三种弹窗

    一.js中的三种弹窗 ** alert() confirm() prompt ** alert() 警示对话框 – alert是js中的window对象的一种方法 – 只包含一个确认按钮 – 返回值类 ...

  6. Thymeleaf读取model里面的对象||Thymeleaf读取model里面的集合||Themeleaf在js中取值||访问带参数的消息||ThymeleafObjects的使用[取三大作域的值

    Thymeleaf读取model里面的对象 Student.java package com.sxt.domain;import lombok.AllArgsConstructor; import l ...

  7. JavaScript -- 时光流逝(三):js中的 String 对象的方法

    JavaScript -- 知识点回顾篇(三):js中的 String 对象的方法 (1) anchor(): 创建 HTML 锚. <script type="text/javasc ...

  8. js中函数的三种定义方式、函数声明、函数同名重复、函数删除、

    全栈工程师开发手册 (作者:栾鹏) js系列教程4-函数.函数参数 在js中,函数本身属于对象的一种,因此可以定义.赋值,作为对象的属性或者成为其他函数的参数.函数名只是函数这个对象类的引用. 一.函 ...

  9. JS中三种字符串连接方式及其性能比较

    工作中经常会碰到要把2个或多个字符串连接成一个字符串的问题,在JS中处理这类问题一般有三种方法,这里将它们一一列出顺便也对它们的性能做个具体的比较. 第一种方法  用连接符"+"把 ...

最新文章

  1. 潜在狄利克雷分配(LDA,Latent Dirichlet Allocation)模型(一)
  2. (转)HLSL,函数列表
  3. 【Groovy】编译时元编程 ( 编译时方法注入 | 使用 buildFromSpec、buildFromString、buildFromCode 进行方法注入 )
  4. Python 基础语法(一)
  5. equation在c语言中是什么意思,MathType出现此对象创建于Equation中的问题怎么办
  6. 数据结构第六篇——顺序存储结构与链式存储结构的特点
  7. 常用的密码破解方法大汇总 zz
  8. 镜像安装Python出现Could not find a version that satisfies the requirement openpyxl (from versions: )
  9. 二十五、JAVA多线程(二、吃苹果案例)
  10. 雅虎网站页面性能优化的34条黄金守则
  11. win10同步服务器文件夹,和彩云如何设置同步文件夹?
  12. 安装KETTLE教程,并配置执行定时任务
  13. 视频教程-6小时JavaScript基础精讲-JavaScript
  14. 程序闪退崩溃的几种原因
  15. bk-02 C++ vector用法 博客园
  16. Linux如何查看显卡版本
  17. 使用ScanShadowsFilter过滤激光雷达拖尾
  18. 使用OneR算法进行分类(Python实现)
  19. 4.12 使用格式刷实现单元格样式的快速复制 [原创Excel教程]
  20. 天猫api接口,天猫详情api接口,天猫优惠券信息api接口,天猫到手价api接口,天猫商品详情接口,可用于行业数据分析,价格监控,竞品分析,品牌维权接口代码对接

热门文章

  1. 北斗计划 | 天枢结营,7 支队伍瓜分巨额奖池
  2. 远程连接服务端电脑mysql数据库
  3. MFC之学习颜色矩形填充函数的使用、设置客户区背景色
  4. Windows下安装web3.js
  5. 为什么Kaggle对找工作有帮助?如何入门?没有项目经验怎么办?
  6. 推荐几个在线就能用的SQL 练习平台,你用过几个?
  7. C语言用代数余子式计算行列式
  8. 顺其自然成了一种借口
  9. 【Python基础】Python数据容器(字符串)
  10. 加权求和公式_从加权求和的角度来看kalman滤波