摘要:关于变量的值的类型的总结。所以此时指向新的对象还是指向被添加了属性的老对象,
关于变量的值的类型的总结。
//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}}
*/
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/86199.html
摘要:可空性在中,类型系统区分一个引用是可以容纳可空引用还是不能容纳非空引用。使用可以很方便得将可空转为非空,但可空变量值为,则会。 目录介绍 01.可空性 02.安全调用运算符:?. 03.Elvis运算符:?: 04.安全转换运算符:as? 05.非空断言:!! 06.let函数说明 07.可空类型的扩展 08.Java中判断方式 09.kotlin是否解决NPE 10.kotlin如...
摘要:函数式编程不是一个框架或工具,而是一种编写代码的方式。函数式编程首先是一个声明式编程范例。举个例子纯函数函数式编程基于的前提是您将基于纯函数构建不可变的程序作为业务逻辑的构建块。 showImg(https://segmentfault.com/img/remote/1460000012402865?w=693&h=339); 最近朋友推荐这本书:Functional PHP ,很多对...
阅读 3916·2021-11-11 10:58
阅读 3251·2021-09-26 09:46
阅读 1891·2019-08-30 15:55
阅读 959·2019-08-30 13:52
阅读 1929·2019-08-29 13:11
阅读 3000·2019-08-29 11:27
阅读 1502·2019-08-26 18:18
阅读 2586·2019-08-23 14:17