…扩展运算符
之前一直以为…可以进行深拷贝,但其实不是
第一种情况,可以深拷贝的
//{key:value},[value]当value是string,number,Boolean类型都是深拷贝
var aa=[1,2,3,4],bb;
bb=[...aa];
bb[0]=5;
console.log(aa)//[1, 2, 3, 4]
console.log(bb)//[5, 2, 3, 4]
当对象或数组穿插或者多层时拷贝的就是引用地址了,
//{key:value},[value] value为array,object拷贝的是引用地址,一旦改变原先的值也会发生改变
var aa=[{aa:'zhangsan'}],bb;
bb=[...aa];
bb[0].aa=5;
console.log(aa)//[{aa: 5}]
console.log(bb)//[{aa: 5}]
var aa=[[1,2,3]],bb;
bb=[...aa];
bb[0][1]=5;
console.log(aa)//[[1, 5, 3]]
console.log(bb)//[[1, 5, 3]]