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:'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);
参考:https://segmentfault.com/a/1190000021975579
JS中三个点(...)相关推荐
- js中三个判断的应用——if else、三元运算符、switch case
js中三个判断的应用--if else.三元运算符.switch case 区别 if .else if.else 是最常用的判断,可以解决js中的所有的判断需求 三元运算符应用于简单的if else ...
- JS中三种字符串连接方式及其性能比较
工作中经常会碰到要把2个或多个字符串连接成一个字符串的问题,在JS中处理这类问题一般有三种方法,这里将它们一一列出顺便也对它们的性能做个具体的比较. 第一种方法 用连接符"+"把 ...
- 详细了解JS中三目运算
?什么是三目运算? 一.三目运算就是两个符号(?).(:)把一个句子拆分成三句. 二.三目语法 第一句话?第二句话:第三句话: 条件?成立执行第二句话:不成立执行第三句话: 三.它的作用是什么呢? 就 ...
- js中三种弹窗的使用
1.alert()–警告消息框 alert 方法有一个参数,即希望对用户显示的文本字符串.该字符串不是 HTML 格式.该消息框提供了一个"确定"按钮让用户关闭该消息框,并且该消息 ...
- js 中的三个等号
Js 中 三个等号(===) 和两个等号(==)的区别 简单来说就是使用"=="时,如果两边类型不同,js引擎会把它们转换成相同类型然后在进行比较,而"===" ...
- js中const,var,let区别与用法
原文链接:https://blog.csdn.net/qq_36784628/article/details/80966826 js中三种定义变量的方式const, var, let的区别. 1. c ...
- 【js】js中const,var,let区别
在node.js使用例子中,第一次看到const的声明,查询了一下,可以看得出来: http://www.cnblogs.com/ksl666/p/5944718.html 参考 主要内容是:js中三 ...
- js中如何拼接字符串
JS中有三种字符串连接方式: 第一种方法 , 用连接符"+"把要连接的字符串连起来: str="a"; str+="b"; 第二种方法, ...
- Thymeleaf读取model里面的对象||Thymeleaf读取model里面的集合||Themeleaf在js中取值||访问带参数的消息||ThymeleafObjects的使用[取三大作域的值
Thymeleaf读取model里面的对象 Student.java package com.sxt.domain;import lombok.AllArgsConstructor; import l ...
最新文章
- activiti 工作流 动态 设置 指定 节点任务人、责任人、组 的实现方式
- 使用subgit进行svn迁移至git(branch,tags)
- 研究人员的AI技术能够实时匹配活页乐谱与MIDI音频
- Sqlit--学习教程(基本操作1)
- Python把嵌套的字符串列表转换为整数列表的两种方法
- python给生活带来哪些改变_Python - 笔记1
- 洛谷 P3378 【模板】堆
- python3+requests接口自动化-其他接口封装
- gitlab提交代码
- 命令解析optparse
- php 5.2 spl_autoload_register,PHP 中的__autoload() 与spl_autoload_register()函数
- 企业IT治理样板间首次直播,教您如何打造高效可控的云环境
- 学习chirp信号笔记
- 阿里云盘秒传使用方法
- kali更改/root下中文目录为英文教程
- 计算机专业毕设论文题目大全(二)
- 调用win api将指定名称的打印机设置为默认打印机
- 智能驾驶仿真场景构建技术
- 连连支付提现人民币的时候汇率是怎么样的?
- LoadLibrary无法加载.dll解决思路
热门文章
- 【Proteus仿真】简易51单片机时钟,带闹钟功能,可调整时间
- SMO(序列最小优化算法)解析
- Android高级开发书籍
- 常用VBScript
- 11月第1周业务风控关注 |工信部启动App侵害用户权益专项整治工作 12月20日是大限
- EL| EL表达式(Java)
- matplotlib库问题:UserWarning: findfont: Font family [‘MicroSoft YaHei‘] not found.Falling back
- python任务调度之schedule
- postfix+squirrelmail实现邮件服务器
- 学生通讯管理系统v2.0