//拓展运算符
var a=[1,2,3]
var b=[11,22,33]
合并数组
a.push(b[0],b[1],b[2]) //输出[ 1, 2, 3, 11, 22, 33 ]
a.push(...b) //输出[ 1, 2, 3, 11, 22, 33 ]
var c=[...a,...b]
console.log(c) //输出 [ 1, 2, 3, 11, 22, 33 ]
//深度拷贝
var aa=a //输出aa=>[1,2,3]
var bb=[...b] //输出bb=>[11,22,33]
console.log(aa===a) //输出 true
console.log(bb==b) //输出 false
字符串转数组
var str='hit'
var d=[...str]
console.log(d) //输出[ 'h', 'i', 't' ]
rest运算符
就是把传的参数(...之后的)全部和到一起做一个数组,差不多是这个意思
var a=[1,2,3]
function f(...arg){ //这个形参中的 ... 就是rest函数的用法
console.log(arg)
}
f(1,2,a) //输出 [ 1, 2, [ 1, 2, 3 ] ]
[ 1, 2, [ 1, 2, 3 ] ]中
1 对应传入的 1,
2 对应传入的 2,
[1,2,3] 对应传入的 a
//如果有多余的参数
function f(x,...arg){
console.log(x)
console.log(arg) //注意 arg是个数组,正规的数组
}
f(1,2,a) //输出下面的
1 //x
[ 2, [ 1, 2, 3 ] ] // 2 和 a组成了一个数组