我们在看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:'chuichui',height:176}
console.log({...man}) / {name:'chuichui',height:176}

有什么用?

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

复制用它

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

合并用它

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

字符转数组用它

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中三个判断的应用——if else、三元运算符、switch case

    js中三个判断的应用--if else.三元运算符.switch case 区别 if .else if.else 是最常用的判断,可以解决js中的所有的判断需求 三元运算符应用于简单的if else ...

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

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

  3. JS中三个点(...)

    我们在看js代码时经常会出现(-)三个点的东西,它究竟是什么意思?又有何用处? 下面我就给大家分享一下三个点的那些事 什么意思? 三个点(-)真名叫扩展运算符,是在ES6中新增加的内容,它可以在函数调 ...

  4. 详细了解JS中三目运算

    ?什么是三目运算? 一.三目运算就是两个符号(?).(:)把一个句子拆分成三句. 二.三目语法 第一句话?第二句话:第三句话: 条件?成立执行第二句话:不成立执行第三句话: 三.它的作用是什么呢? 就 ...

  5. js中三种弹窗的使用

    1.alert()–警告消息框 alert 方法有一个参数,即希望对用户显示的文本字符串.该字符串不是 HTML 格式.该消息框提供了一个"确定"按钮让用户关闭该消息框,并且该消息 ...

  6. js 中的三个等号

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

  7. js中const,var,let区别与用法

    原文链接:https://blog.csdn.net/qq_36784628/article/details/80966826 js中三种定义变量的方式const, var, let的区别. 1. c ...

  8. 【js】js中const,var,let区别

    在node.js使用例子中,第一次看到const的声明,查询了一下,可以看得出来: http://www.cnblogs.com/ksl666/p/5944718.html 参考 主要内容是:js中三 ...

  9. js中如何拼接字符串

    JS中有三种字符串连接方式: 第一种方法 , 用连接符"+"把要连接的字符串连起来: str="a"; str+="b"; 第二种方法,   ...

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

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

最新文章

  1. [matlab]Monte Carlo模拟学习笔记
  2. strut2以及路径的一些问题
  3. 不要争了,别的程序员是这么给变量起名的!
  4. nyoj 998(欧拉定理的运用)
  5. boost::fibers::launch::post的测试程序
  6. 【Java24】健康项目:环境搭建,预约管理(检查项和检查组管理)
  7. jq select操作全集
  8. 高等数学上-赵立军-北京大学出版社-题解-练习2.5
  9. Javascript JSON格式
  10. Spring框架----Spring的bean注解
  11. Django学习1---安装Django,创建、启动项目
  12. 最惊艳你的短句是什么?
  13. 变身吧,无人机:多种姿势可以选择,你喜欢X还是O?
  14. 通用权限管理系统组件 (GPM - General Permissions Manager) 中灵活经典的.NET2.0数据库访问组件,附源码...
  15. 三维重建_对比几个三维重建系统(大部分开源)
  16. 数字图像处理——图像锐化
  17. 监控视频压缩存储—视频实时压缩服务器
  18. 在word中插入分页符,多出一行
  19. 可用c语言编程的科学计算器,一个用C语言实现的科学计算器
  20. Centos7 安装 Tomcat8 的正确姿势 并设置开机自启

热门文章

  1. springboot+shrio简易登录登出和用户权限认证。
  2. shiro 记住我 的实现
  3. 如何让自己的博客被搜索引擎收录
  4. oracle创建用户'表空间配额,牛刀小试:Oracle 用户表空间配额(quota )控制之随心所欲...
  5. 这7种类型的食物可能引起 “痘痘”
  6. UE4 替换文件尝试解决 光照构建失败 Lighting build failed. Swarm failed to kick off
  7. 张亮:十万级并发任务调度框架 ElasticJob 的定位与设计理念
  8. 计算机app无法删除,文件夹删不掉怎么办?
  9. 阿里巴巴初创时的十八罗汉,离开阿里之后都有什么故事?
  10. React的CRA脚手架的创建