Creo que deberían de checar
http://wtfjs.com/ donde la mayoría se resumen a que js no usa una comparación de los objetos si no de sus apuntadores a memoria.
Por ejemplo
var a = new Array('a','b');
var b = new Array('a','b');
console.log(a==b);
//False
mientras que
var a = new Array('a','b');
var b = a;
console.log(a==b);
//True
Y esto se debe a que js se programo para los browsers antiguos que no tenían el poder de los actuales y se optimizaron muchas cosas para poderlos hacer eficientes.