JS中三个点(...)是什么意思?其实它的真名叫“扩展运算符”
发表于:2022-07-26 15:58:18浏览:4275次
大家在日常看别人写的js代码时,经常会出现(…)三个点的东西,那它究竟是什么意思?是什么新的语法糖?又有何用处?下面就给大家分享一下javascript中(…)这个三个点的那些事。
1、javascript中的(…)是什么意思?
javascript中的这三个点(…)真名叫扩展运算符
,是在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 gougu = {name:'gouguOA',height:176}
console.log({...gougu}) // {name:'gouguOA',height:176}
2、javascript中的(…)有什么用?
它的用处很广泛,我们随处都可以看到,下面再列举几个常见的例子:
a、复制用它
//数组的复制
var arr1 = ['hello']
var arr2 =[...arr1]
arr2 // ['hello']
//对象的复制
var obj1 = {name:'gouguOA'}
var obj2 ={...obj1}
obj2 // {name:'gouguOA'}
b、合并用它
//数组的合并
var arr1 = ['hello']
var arr2 =['gouguOA']
var mergeArr = [...arr1,...arr2]
mergeArr // ['hello','gouguOA']
// 对象分合并
var obj1 = {name:'gouguOA'}
var obj2 = {height:176}
var mergeObj = {...obj1,...obj2}
mergeObj // {name: "gouguOA", height: 176}
C、字符转数组用它
var arr1 = [...'hello']
arr1 // ["h", "e", "l", "l", "o"]
d、函数传参用它
可以和正常的函数相结合,灵活使用
function f(v,w,x,y,z){ }
var args = [2,3]
f(1,...args,4,...[5])
e、当我们想把数组中的元素迭代为函数参数时,用它
function f(x,y,z){}
var args = [1,2,3]
f(...args)
// 以前的方法
f.apply(null,args);
推荐文章
- 开源OA 办公系统 — 勾股 OA 4.60.28 发布
- notepad++ 正则表达式替换常用方法
- thinkphp6 生成Barcode条形码和Qrcode二维码的方法
- 阿里云OSS文件上传速度技巧之内网地址上传
- Figma封禁大疆,蓝湖MasterGo上线“Figma文件导入功能”
- PHP根据昵称或者姓名自动生成文字头像(图片)的方法
- Unicode 14.0标准版本发布,新增 838 个字符,共计达 144697 个字符
- Layui的laydate模块实现快捷选中今天、昨天 、本周、本月等操作
- ThinkPHP6部署到Apache的详细步骤
- Layui的upload模块实现多图批量上传,无需修改代码,完美解决方案