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']
value函数什么意思// 对象分合并
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);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。