Posible duplicado:
Javascript === vs ==: ¿Importa qué operador "igual" uso?
Cuál es la diferencia entre ==
y ===
en JavaScript? También he visto !=
y !==
operadores. ¿Hay más operadores de este tipo?
Posible duplicado:
Javascript === vs ==: ¿Importa qué operador "igual" uso?
Cuál es la diferencia entre ==
y ===
en JavaScript? También he visto !=
y !==
operadores. ¿Hay más operadores de este tipo?
===
y !==
son operadores de comparación estricta:
JavaScript tiene tanto estricto y comparación de igualdad de conversión de tipos. Para una igualdad estricta, los objetos son comparado debe tener el mismo tipo y:
- Dos cadenas son estrictamente iguales cuando tienen la misma secuencia de personajes, la misma longitud y el mismo personajes en posiciones correspondientes.
- Dos números son estrictamente iguales cuando son numéricamente iguales (tienen el mismo valor numérico). NaN no es igual a cualquier cosa, incluido NaN. Los ceros positivos y negativos son iguales a otro.
- Dos operandos booleanos son estrictamente iguales si ambos son verdaderos o ambos son falsos
- Dos objetos son estrictamente iguales si se refieren al mismo objeto.
- Los tipos nulos e indefinidos son == (pero no ===). [Es decir. (Nulo == Indefinido) es verdadero pero (Nulo === Indefinido) es falso]
Eche un vistazo aquí: http://longgoldenears.blogspot.com/2007/09/triple-equals-in-javascript.html
Los 3 signos iguales significan "igualdad sin coerción de tipo". Usando el triple igual, los valores deben ser iguales en tipo también.
0 == false // true
0 === false // false, because they are of a different type
1 == "1" // true, automatic type conversion for value only
1 === "1" // false, because they are of a different type
null == undefined // true
null === undefined // false
'0' == false // true
'0' === false // false