4.19
JS中三个点(...)是什么?
我们在看js代码时经常会出现(...)三个点的东西,它究竟是什么意思?又有何用处?
下面我就给大家分享一下三个点的那些事
什么意思?
三个点(...)真名叫扩展运算符,是在ES6中新增加的内容,它可以在函数调用/数组构造时,将数组表达式或者string在语法层面展开;还可以在构造字面量对象时将对象表达式按照key-value的方式展开
字面量一般指[1,2,3]或者{name:'chuichui'}这种简洁的构造方式,多层嵌套的数组和对象三个点就无能为力了
说白了就是把衣服脱了,不管是大括号([])、花括号({}),统统不在话下,全部脱掉脱掉!
1
2
3
4
5
6
|
// 数组 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 } |
有什么用?
它的用处很广泛,我们随处都可以看到,下面是几个常见的例子
复制用它
1
2
3
4
5
6
7
8
|
//数组的复制 var arr1 = [ 'hello' ] var arr2 =[...arr1] arr2 // ['hello'] //对象的复制 var obj1 = {name: 'chuichui' } var obj2 ={...arr} ob12 // {name:'chuichui'} |
合并用它
1
2
3
4
5
6
7
8
9
10
|
//数组的合并 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} |
字符转数组用它
1
2
|
var arr1 = [... 'hello' ] arr1 // ["h", "e", "l", "l", "o"] |
函数传参用它
可以和正常的函数相结合,灵活使用
1
2
3
|
function f(v,w,x,y,z){ } var args = [ 2 , 3 ] f( 1 ,...args, 4 ,...[ 5 ]) |
当我们想把数组中的元素迭代为函数参数时,用它!
1
2
3
4
5
6
|
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 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律