简单数据类型的赋值操作:
赋值的是储存的数据,赋值后两个变量没有关系了。
随意操作其中一个,另一个不会改变。
引用数据类型/复杂数据类型
浅拷贝:
直接赋值 赋值的是内存地址
此时两个变量使用的内容相同,一个操作,另一个也会改变。
深拷贝:
使用循环遍历,获取复杂数据类型中储存的每一个数据信息
赋值到新的变量中
赋值后,两个变量没有任何关系
下面附上深度拷贝代码例子:
//这里是要使用for循环,就arr2中的数据写入arr3中
var arr2 = [1,2,3,4,5,6,7,8,9];
//创建一个空的数组
var arr3 = [];
for(var i = 0 ; i< arr2.length; i++){
//使用push将arr2中的单元数据,写入arr3中
//此时 arr3,就是存储的arr2的单元数据
arr3.push(arr2[i]);
}
//当其中一个数组发生改变
arr3[0] =555;
console.log(arr2,arr3);
//另个一个数组不受影响: 深拷贝
注:也就是赋值的是地址还是内容
版权声明:本文为fengzi_a原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。