對象比較的問題
var?a?=?[1,2];
var b = [1,2];
alert(a == b); ?為什么輸出是false
alert(new Object() == new Object()); ?輸出也是false ?
難道是我打開方式不對?
?-----
好吧 ? 原來是我沒聽完 ? 承認錯誤
var?a?=?[1,2];
var b = [1,2];
alert(a == b); ?為什么輸出是false
alert(new Object() == new Object()); ?輸出也是false ?
難道是我打開方式不對?
?-----
好吧 ? 原來是我沒聽完 ? 承認錯誤
2015-12-30
舉報
2016-06-15
對象和對象比較,是比較的引用,兩個對象都是new出來的(新創(chuàng)建出來的),所以是不同的對象,不同的對象的引用是不同的,所以輸出是false
只有對象和基本類型進行比較的時候,才會將對象轉變成基本類型,再作比較。兩個對象比較的時候是不會轉成基本類型的,如:
var a = new String('hi');
var b = new String('hi');
a == 'hi';//true (先轉換成基本類型再比較)
b == 'hi';//true(先轉換成基本類型再比較)
但是 a == b;// false? (比較的是引用)
2015-12-30
你var兩次,自然是兩個對象了,怎么會相等呢?