资讯专栏INFORMATION COLUMN

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

2shou / 2518人阅读

摘要:关于变量的值的类型的总结。所以此时指向新的对象还是指向被添加了属性的老对象,

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

//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

相关文章

  • PHP的生成器

    摘要:它最简单的调用形式看起来像一个申明,不同之处在于普通会返回值并终止函数的执行,而会返回一个值给循环调用此生成器的代码并且只是暂停执行生成器函数。 0x01 写在前面 本文主要介绍: Generator的简单用法。 Generator的底层实现。 本文比较长,可能会耗费你比较多的时间。如果你比较了解Generator的用法,仅想了解底层实现,可以直接跳到底层实现部分。 本文分析的PH...

    LMou 评论0 收藏0
  • Kotlin可空性探索

    摘要:可空性在中,类型系统区分一个引用是可以容纳可空引用还是不能容纳非空引用。使用可以很方便得将可空转为非空,但可空变量值为,则会。 目录介绍 01.可空性 02.安全调用运算符:?. 03.Elvis运算符:?: 04.安全转换运算符:as? 05.非空断言:!! 06.let函数说明 07.可空类型的扩展 08.Java中判断方式 09.kotlin是否解决NPE 10.kotlin如...

    DataPipeline 评论0 收藏0
  • PHP函数式编程的初步认识

    摘要:函数式编程不是一个框架或工具,而是一种编写代码的方式。函数式编程首先是一个声明式编程范例。举个例子纯函数函数式编程基于的前提是您将基于纯函数构建不可变的程序作为业务逻辑的构建块。 showImg(https://segmentfault.com/img/remote/1460000012402865?w=693&h=339); 最近朋友推荐这本书:Functional PHP ,很多对...

    wwq0327 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<