引用型数据类型的赋值操作——深浅拷贝
①浅拷贝:直接将一个引用数据的地址赋值给另一个变量。
<script>
var arr1 = [1, 2, 3, 4, 5];
var arr2 = arr1; //将arr1赋值给arr2,直接赋值,赋值的是内存地址
arr1[0] = '改变'; //对arr1操作,arr2也会改变,同样对arr2操作,arr1也会改变
console.log(arr1, arr2); //输出结果相同
</script>

浅拷贝:赋值的是内存地址;一个操作,另一个也会改变
②深拷贝:赋值应用类型中的数据,而不是内容。
<script>
var arr1 = [1, 2, 3, 4, 5];
var arr2 = [];
arr1.forEach(function(val){
arr2.push(val); //循环遍历,将arr1中的数据赋值给arr2
})
console.log(arr2); //赋值后的arr2数组
arr1[0] = '改变'; //对arr1进行操作
console.log(arr1,arr2); //数组arr2不会受影响
</script>

深拷贝:赋值的是内容;对一个操作,不会影响另一个。

浙公网安备 33010602011771号