01_关于变量的值的个人理解

关于变量的值的类型的总结。

//1.当多个变量的值是非引用类型
var a=1;
var b=a; //系统复制了a的值并赋值给b
a++; //a自身的值被改变,而b的值不受影响 a b的值虽相等但互不影响
console.log(a)//2
console.log(b)//1

//2.当多个变量的值是引用类型
var a={n:1}; //a的值是一个引用对象,在内存中保存这个对象的地址,a指向{n:1}
var b=a; //将a赋值给b,其实是将a的引用赋给了b,a和b同时是指向 {n:1}.
a.n++; //当a的引用对象发生改变时,必然b的值也会被改变。因为他们指向同一个引用对象
console.log(a.n);//2
console.log(b.n);//2

//3.当多个变量的值是引用对象,其中一个变量发生引用对象改变时
var a={n:1};
var b=a;
a.x=a={n:2};
console.log(a.x);//undefined
console.log(b.x);//{n:2}

/*a 的对象是一个引用对象
*a赋值给b,ab同时指向同一引用对象
a并没有x属性,当强行调用x属性时,是undefined,将a={n:2}赋值给a.x,此时a原有的引用对象变更成{n:1,x:{n:2}},同时a={n:2}使a原来的引用对象,变更成{n:2}
*但是b的引用对象只是被变更了值,而并没有改变引用。所以此时a指向新的对象{n:2},b还是指向被添加了x属性的老对象{n:1,x:{n:2}}
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值