引用数据类型的赋值

引用数据类型的赋值分为两种类型:浅拷贝和深拷贝。
浅拷贝:直接赋值,赋值的是内存地址,赋值之后 两个变量使用的相同内容,一个操作,另一个也会改变。
深拷贝:只赋值引用数据类型中的数值,而不是赋值地址,数据赋值后二者互不相干。
示例程序如下:
var arr1 = [1,2,3,4,5,6];
// 浅拷贝
// arr1 变量中存储的是数组的内存地址
// 将arr1存储的内存地址,赋值给arr2,两个变量存储的是相同的内存地址
var arr2 = arr1;
// 输出arr2
console.log(arr2);
// 改变arr1中的数据
arr1[0] = ‘北京’;
// arr1与arr2中的数据都改变
console.log(arr1)
console.log(arr2);
// 深拷贝
// arr1[1]中存储的是数据,将数据赋值给arr3
var arr3 = arr1[1];
// 输出 arr3
console.log(arr3);
// arr1中赋值给arr3的数据进行改变
arr1[1] = ‘你好’;
// arr1中的数据改变
console.log(arr1);
// arr3中的数据没有改变
console.log(arr3);
// 如果想要获得数组中的全部数据,则通过循环遍历的方式赋值
程序运行结果如下:
在这里插入图片描述

可以看到16行为arr2的输出,20、21行为数据改变后的arr1、arr2的输出,可以看到arr1、arr2中的数据都被改变。这是浅拷贝的规则。
26行为arr3的输出,30、32行为数据改变后的arr1、arr3的输出,可以看到arr1被改变,而arr3的数据并未被改变。这是深拷贝的规则。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值