扩展运算符
三个点表示 …
一、数组
-
遍历数组
var arr = [1, 2, 3, 4] console.log(...arr) //1 2 3 4
-
当做数组中的元素
var arr_1 = [0, ...arr] console.log(arr_1) //[0,1,2,3,4]
-
数组深拷贝
var arr_2 = [...arr_1] arr_1.unshift(1) console.log(arr_1) //[1,0,1,2,3,4] console.log(arr_2) //[0,1,2,3,4]
-
函数的调用
function fn(a, b, c) { console.log(a, b, c) } fn(...arr_1) //1 0 1
-
与解构赋值连用
var [x, y, z] = [...arr_1] console.log(x, y, z) //1 0 1
-
将伪数组转换成真正的数组
var str = '我们是程序员' console.log(Array.from(str)) // ['我', '们', '是', '程', '序', '员'] console.log([...str]) // ['我', '们', '是', '程', '序', '员']
二、对象
先定义一个对象obj
var obj = {
name: 'abcd',
age: 18,
}
1、遍历对象
console.log({ ...obj }) //{name: 'abcd', age: 18}
2、对象深拷贝
var obj_1 = { ...obj }
delete obj.age
console.log(obj) //{name: 'abcd'}
console.log(obj_1) //{name: 'abcd', age: 18}
3、合并
var a = {
a: 1,
b: 3,
}
var b = {
b: 2,
...a,
}
console.log(b) //{b: 3, a: 1}