1(...)扩展运算符作用:将一个数组变为一个以空格分隔的参数序列。
2 数组的复制
var arr1 = [1,2,3,4,5,[6] ];
var arr2 = [...arr1]
arr1[0] = 10;
//实现了深拷贝(数组中存在基本类型数据一般都是深拷贝)
console.log(arr1) //[10, 2, 3, 4, 5]
console.log(arr2) //[1, 2, 3, 4, 5]
var arr1 = [1,2,3,4,5,[6] ];
//数组复制
var arr2 = [...arr1]
arr1[5][0] = 20
//实现了浅拷贝(数组中存在引用类型数据一般都是浅拷贝)
console.log(arr1) //[1, 2, 3, 4, 5, [20]]
console.log(arr2) //[1, 2, 3, 4, 5, [20]]
3 对象的复制
var obj1 = { age:19, name:'xiaohu' }
var obj2 = { ...obj1 }
obj1.age = 21
//实现了深拷贝(对象中是基本类型数据一般为深拷贝)
console.log(obj1) //{age: 21, name: 'xiaohu'}
console.log(obj2) //{age: 19, name: 'xiaohu'}
var obj1 = { age:19, name:'xiaohu',person:{name:'张三'} }
var obj2 = { ...obj1 }
obj1.age = 21
obj1.person.name = 'xiaobei'
//实现了深拷贝(对象中是引用类型数据一般为浅拷贝)
console.log(obj1) //{age: 21, name: 'xiaohu',person: {name: 'xiaobei'}}
console.log(obj2) //{age: 19, name: 'xiaohu',person: {name: 'xiaobei'}}
4 合并
数组合并
var arr1 = [1,2,3];
var arr2 = [3,4,5];
var arr3 = [...arr1,arr2];
console.log(arr3) //[1, 2, 3, 3, 4, 5]
对象合并
var obj1 = {age:19}
var obj2 = {name:'tudou'}
var obj3 = {...obj1,...obj2}
console.log(obj3) //{age: 19, name: 'tudou'}
字符串改为数组
var arry1 = [...'word'];
console.log(arry1) //['w', 'o', 'r', 'd']