为了账号安全,请及时绑定邮箱和手机立即绑定

对象比较的底层问题

对象比较的底层问题

ruibin 2016-02-22 16:13:42
var a = {};var b = {};a > b; //falsea < b; //falsea == b; //falsea >= b;//truea <= b;//true正常情况下,两个对象比较是比较地址,对象和其他类型比较调用对象toString方法,然后再调用number方法,而这里,很明显调用的是地址比较方法,而对象的地址是hash算法随即分配的结果。那么问题来了,前面三种情况可以解释,那么后面两种情况是什么原因导致的?求解。
查看完整描述

1 回答

已采纳
?
卖火柴的小舒

TA贡献42条经验 获得超16个赞

//img1.sycdn.imooc.com//56ce67bf000133ba06400341.jpg

结合上面的说法,小于等于运算只是简单地“不大于”,既然a<b  >>false那也就说a是不大于b的,a<=b也就返回true。a<=b同理!


查看完整回答
反对 回复 2016-02-25
  • ruibin
    ruibin
    关键是:他们比较的底层采用的是什么方法?难道是toString,然后Number?或者是比较地址,不过感觉比较地址很抽象。
  • ruibin
    ruibin
    你的回答还是很给力的,解决了一部分困惑
  • 卖火柴的小舒
    卖火柴的小舒
    我觉得你的“比较地址”说法好像不点不准确,应该说是比较“对象的引用”,也就是说是否引用同一个对象。比较引用是否就等于比较地址,这个我也不肯定了!
点击展开后面1
  • 1 回答
  • 1 关注
  • 1782 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信