有很多情況下,JavaScript的強制類型相等運算符不是可傳遞的。例如,請參閱「JavaScript equality transitivity is weird」。JavaScript的double等於(==)總是對稱的嗎?
但是,有什麼情況下==
不是對稱?也就是說,其中a == b
是true
和b == a
是false
?
有很多情況下,JavaScript的強制類型相等運算符不是可傳遞的。例如,請參閱「JavaScript equality transitivity is weird」。JavaScript的double等於(==)總是對稱的嗎?
但是,有什麼情況下==
不是對稱?也就是說,其中a == b
是true
和b == a
是false
?
這是假設是對稱的。但是,在某些版本的IE中存在不對稱情況:
window == document; // true
document == window; // false
哇,真是太棒了。你能指定哪些版本的IE出現這種情況嗎? – 2011-04-14 21:35:05
在Win8.0上使用IE10我在「瀏覽器模式:IE8」(不是在IE10,IE9或* IE7 *模式下)看到了這種行爲。 – Jeroen 2014-05-13 19:51:05
不應該是*交換*? – 2011-04-14 20:50:22
@Shtééf:也許它應該是,但事實並非如此。 http://en.wikipedia.org/wiki/Symmetric_relation關係不是運營商。 – SLaks 2011-04-14 20:52:00
感謝您的糾正 - 從我拿起數學學位起,這已經太長了! – 2011-04-14 21:32:26