1. 90前端首页
  2. 前端开发
  3. JavaScript

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);

感受🤛

用了三个点感觉一切都可以省略,一切尽在不言中,你慢慢品☕️

最后 🙌

好啦,以上就是我本次分享的全部内容啦,如果你觉得我的文章对你有一丢丢帮助,那么请不要吝啬你的赞👍哦,阿门~

本文来自网络整理,转载请注明原出处:https://segmentfault.com/a/1190000021975579

展开阅读全文

发表评论

登录后才能评论