扫码关注官方订阅号
有人能告诉我为什么是true吗?两个是一样的,判断不等于的时候结果却是true
认证0级讲师
你这就是2个对象实例 本来就不相等
对象是引用类型, 两个对象的字段相同并不表示两个对象相同,因为引用地址是不同的。 如果引用的是同一个地址那么结果会为 false
如果要比较两个对象是否相似(字段值相同),可以利用一些工具函数 lodash 的 isEqual
javascript有五种简单数据类型——Undefined、Null、Boolean、Number、String,以及一种复杂数据类型Object。简单数据类型中Null表示一个空的指针,其余四种均表示一个具体的值。而对于Object类型,它又被称为引用类型,Js中所有的对象均是某个特定引用类型的实例。Js当初可能是有效率方面的考虑吧,所有的对象其实都是指针(引用)。纵然对象内部解构一模一样,但是只要实例不同,指针指向的内存地址当然是不一样的。
Undefined
Null
Boolean
Number
String
Object
==符号的运算法则对于对象而言,它是不会去检查对象内部的,只会检查引用的内存地址是不是同一个,到你这里,你这两个数组明显不是同一个实例,用!=判断当然会得到true。
==
!=
true
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
你这就是2个对象实例 本来就不相等
对象是引用类型, 两个对象的字段相同并不表示两个对象相同,因为引用地址是不同的。 如果引用的是同一个地址那么结果会为 false
如果要比较两个对象是否相似(字段值相同),可以利用一些工具函数 lodash 的 isEqual
javascript有五种简单数据类型——
Undefined、Null、Boolean、Number、String,以及一种复杂数据类型Object。简单数据类型中
Null表示一个空的指针,其余四种均表示一个具体的值。而对于
Object类型,它又被称为引用类型,Js中所有的对象均是某个特定引用类型的实例。Js当初可能是有效率方面的考虑吧,所有的对象其实都是指针(引用)。纵然对象内部解构一模一样,但是只要实例不同,指针指向的内存地址当然是不一样的。
==符号的运算法则对于对象而言,它是不会去检查对象内部的,只会检查引用的内存地址是不是同一个,到你这里,你这两个数组明显不是同一个实例,用!=判断当然会得到true。