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

对象比较的问题

var a = [1,2];

var b = [1,2];

alert(a == b);  为什么输出是false

alert(new Object() == new Object());  输出也是false  

难道是我打开方式不对?

 -----

好吧   原来是我没听完   承认错误

正在回答

2 回答

对象和对象比较,是比较的引用,两个对象都是new出来的(新创建出来的),所以是不同的对象,不同的对象的引用是不同的,所以输出是false

只有对象和基本类型进行比较的时候,才会将对象转变成基本类型,再作比较。两个对象比较的时候是不会转成基本类型的,如:

var a = new String('hi');

var b = new String('hi');

a == 'hi';//true (先转换成基本类型再比较)

b == 'hi';//true(先转换成基本类型再比较)

但是 a == b;// false  (比较的是引用)


3 回复 有任何疑惑可以回复我~

你var两次,自然是两个对象了,怎么会相等呢?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

对象比较的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信