Fork me on Gitee

扩展运算符

我们在数组中所见到的三个点(...)是ES6新增的扩展运算符,它可以在函数调/数组构造时,将数组表达式或者string在语法层面展开;还可以在构造字面量对象时将对象表达式按照key-value的方式展开

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

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

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

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

  • 复制
//数组的复制
var arr1 = ['hello']
var arr2 = [...arr1]
arr2 //['hello']
//对象的复制
var obj1 = {name:'zs'}
var obj2 = {...arr}
obj2 //{name:'zs'}
  • 合并
//数组的合并
var arr1 = ['hello']
var arr2 = ['zs']
var mergeArr = [...arr1,...arr2]
console.log(mergeArr); //['hello','zs']
//对象合并
var obj1 = {name:'zs'}
var obj2 = {height:178}
var mergeObj = {...obj1,...obj2}
console.log(mergeObj) //{name:'zs',height:178}
  • 字符转数组
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);
posted @   ThesunKomorebi  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示