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);
JS中三个点(...)是什么鬼?相关推荐
- js中三个判断的应用——if else、三元运算符、switch case
js中三个判断的应用--if else.三元运算符.switch case 区别 if .else if.else 是最常用的判断,可以解决js中的所有的判断需求 三元运算符应用于简单的if else ...
- JS中三种字符串连接方式及其性能比较
工作中经常会碰到要把2个或多个字符串连接成一个字符串的问题,在JS中处理这类问题一般有三种方法,这里将它们一一列出顺便也对它们的性能做个具体的比较. 第一种方法 用连接符"+"把 ...
- JS中三个点(...)
我们在看js代码时经常会出现(-)三个点的东西,它究竟是什么意思?又有何用处? 下面我就给大家分享一下三个点的那些事 什么意思? 三个点(-)真名叫扩展运算符,是在ES6中新增加的内容,它可以在函数调 ...
- 详细了解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 ...
最新文章
- [matlab]Monte Carlo模拟学习笔记
- strut2以及路径的一些问题
- 不要争了,别的程序员是这么给变量起名的!
- nyoj 998(欧拉定理的运用)
- boost::fibers::launch::post的测试程序
- 【Java24】健康项目:环境搭建,预约管理(检查项和检查组管理)
- jq select操作全集
- 高等数学上-赵立军-北京大学出版社-题解-练习2.5
- Javascript JSON格式
- Spring框架----Spring的bean注解
- Django学习1---安装Django,创建、启动项目
- 最惊艳你的短句是什么?
- 变身吧,无人机:多种姿势可以选择,你喜欢X还是O?
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中灵活经典的.NET2.0数据库访问组件,附源码...
- 三维重建_对比几个三维重建系统(大部分开源)
- 数字图像处理——图像锐化
- 监控视频压缩存储—视频实时压缩服务器
- 在word中插入分页符,多出一行
- 可用c语言编程的科学计算器,一个用C语言实现的科学计算器
- Centos7 安装 Tomcat8 的正确姿势 并设置开机自启
热门文章
- springboot+shrio简易登录登出和用户权限认证。
- shiro 记住我 的实现
- 如何让自己的博客被搜索引擎收录
- oracle创建用户'表空间配额,牛刀小试:Oracle 用户表空间配额(quota )控制之随心所欲...
- 这7种类型的食物可能引起 “痘痘”
- UE4 替换文件尝试解决 光照构建失败 Lighting build failed. Swarm failed to kick off
- 张亮:十万级并发任务调度框架 ElasticJob 的定位与设计理念
- 计算机app无法删除,文件夹删不掉怎么办?
- 阿里巴巴初创时的十八罗汉,离开阿里之后都有什么故事?
- React的CRA脚手架的创建