var a = [1,2];
var b = [1,2];
alert(a == b); 为什么输出是false
alert(new Object() == new Object()); 输出也是false
难道是我打开方式不对?
-----
好吧 原来是我没听完 承认错误
对象和对象比较,是比较的引用,两个对象都是new出来的(新创建出来的),所以是不同的对象,不同的对象的引用是不同的,所以输出是false
只有对象和基本类型进行比较的时候,才会将对象转变成基本类型,再作比较。两个对象比较的时候是不会转成基本类型的,如:
var a = new String('hi');
var b = new String('hi');
a == 'hi';//true (先转换成基本类型再比较)
b == 'hi';//true(先转换成基本类型再比较)
但是 a == b;// false (比较的是引用)
你var两次,自然是两个对象了,怎么会相等呢?