我们在数组中所见到的三个点(...)是ES6新增的扩展运算符,它可以在函数调/数组构造时,将数组表达式或者string在语法层面展开;还可以在构造字面量对象时将对象表达式按照key-value的方式展开
字面量一般指[1,2,3]或者{name:'zs'}这种简洁的构造方式,多层嵌套的数组和对象三个点就无能为力了
说白了就是把衣服脱了,不管是大括号[],花括号{},统统不在话下,全部脱掉脱掉!
| |
| var number = [1,2,3,4,5,6] |
| console.log(...number) |
| |
| var man = {name:'zs',height:178} |
| console.log({...man}) |
那它有什么用呢?
它的用处很广泛,我们随处都可以看到,下面是几个常见的例子
| |
| var arr1 = ['hello'] |
| var arr2 = [...arr1] |
| arr2 |
| |
| var obj1 = {name:'zs'} |
| var obj2 = {...arr} |
| obj2 |
| |
| var arr1 = ['hello'] |
| var arr2 = ['zs'] |
| var mergeArr = [...arr1,...arr2] |
| console.log(mergeArr); |
| |
| var obj1 = {name:'zs'} |
| var obj2 = {height:178} |
| var mergeObj = {...obj1,...obj2} |
| console.log(mergeObj) |
| 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); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!