2013-02-04 76 views
3

如何檢查兩個變量指向同一個對象?這意味着如果我改變它 - 兩個變量指向的值將會改變。在Python中有is運算符,JavaScript呢?JavaScript中的對象標識

回答

8

全等運算符(===)將評估爲true,如果引用是相同的,而不做任何類型的轉換:

var a, b, c; 
a = {}; 
b = {}; 
c = a; 
console.log(a === b); //false 
console.log(a === c); //true 

擊落這也犯了同樣的錯誤兩個職位後,我想我要指出的是,有可能爲==與值類型引用類型等同由於類型轉換:

var a, b; 
a = { 
    toString: function() { 
     return 'foo'; 
    } 
}; 
b = 'foo'; 
console.log(a == b); //true 
console.log(a === b); //false 

一FAIK如果你能保證這兩個變量都是參考類型,==應該可以正常工作,但很少有這樣的情況,你最好在大多數情況下堅持嚴格的比較。

2

Javascript中的等價操作符是「===」。

同樣,「!==」與Python中的「不是」相同。