@siedrix, ese caso es distinto porque, aunque con la misma estructuras, ambos son arrays. el segundo devuelve true porque
b es una
referencia de
a. es lo mismo que sucede con los objetos y funciones.
Código:
console.log(function(){} == function(){});
console.log({} == {});
el caso que estoy mencionando es distinto a esto porque se esta comparando un objeto con un valor primitivo, en este caso un boolean. de hecho, mira lo que sucede en el siguiente ejemplo.
Código:
console.log([3] == 3); // true ;
console.log(["s"] == "s"); // true ;
// sin embargo ;
console.log([undefined] == undefined); // false ;
console.log([null] == null); // false ;
creo que la razon se debe a lo que se explica en este caso,
http://wtfjs.com/2011/02/11/all-your...elong-to-Array. aparentemente tiene que ver con la conversion en ToPrimitive.