为什么obj不等于obj?

  近几日,在学习jQuery时,发现了一个有趣的现象。即obj不等于obj, 我们先来看一下代码示例。

var obj = {};
var obj1 = {};
console.log(obj === obj1);  

  以正常的角度理解:我们在js中,创建了两个空对象,其值应该相等才对。

    但是,答案并非如此。 打印的结果为:false

  那这又是为什么呢?

 

  • 其实要解决这个问题,我们还要先从JS中的基本数据类型和引用数据类型说起。

  上一篇文章,已经为大家介绍了JS中的两种数据类型:基本数据类型值,引用类型数据值。

  如果大家还有印象的话,其实本例中的obj对象,属于引用类型的值。

  引用类型的值存放于堆内存中。

  

  根据上图我们可以发现,虽然两个obj对象都没有被赋值,但其实在堆内存中他们指向的对象并不是同一个对象。

  所以,这也就解释了为什么obj不等于obj的现象。

 

  

 

转载于:https://www.cnblogs.com/AimeeCodeWorld/p/6591623.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值