javascript - 有人能告诉我这个判断为什么是true吗?
PHP中文网
PHP中文网 2017-04-11 11:01:25
[JavaScript讨论组]


有人能告诉我为什么是true吗?两个是一样的,判断不等于的时候结果却是true

PHP中文网
PHP中文网

认证0级讲师

全部回复(3)
高洛峰

你这就是2个对象实例 本来就不相等

伊谢尔伦
  1. 对象是引用类型, 两个对象的字段相同并不表示两个对象相同,因为引用地址是不同的。 如果引用的是同一个地址那么结果会为 false

  2. 如果要比较两个对象是否相似(字段值相同),可以利用一些工具函数 lodash 的 isEqual

巴扎黑

javascript有五种简单数据类型——UndefinedNullBooleanNumberString,以及一种复杂数据类型Object
简单数据类型中Null表示一个空的指针,其余四种均表示一个具体的值。
而对于Object类型,它又被称为引用类型,Js中所有的对象均是某个特定引用类型的实例。
Js当初可能是有效率方面的考虑吧,所有的对象其实都是指针(引用)。纵然对象内部解构一模一样,但是只要实例不同,指针指向的内存地址当然是不一样的。

==符号的运算法则对于对象而言,它是不会去检查对象内部的,只会检查引用的内存地址是不是同一个,到你这里,你这两个数组明显不是同一个实例,用!=判断当然会得到true

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号