Diferencia entre == y === en JavaScript

¿Cuál es la diferencia entre == y === en JavaScript? También he visto los operadores != y !==. ¿Hay más operadores de este tipo?

Echa un vistazo aquí: http://longgoldenears.blogspot.com/2007/09/triple-equals-in-javascript.html

Los 3 signos de igualdad 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
Comentarios (19)
Solución

=== y !== son operadores de comparación estrictos:

JavaScript tiene tanto la comparación estricta como la comparación de igualdad con conversión de tipo. Para la igualdad estricta los objetos que se comparan deben tener el mismo tipo y comparados deben tener el mismo tipo y:

  • Dos cadenas son estrictamente iguales cuando tienen la misma secuencia de caracteres, la misma longitud y los mismos caracteres en las posiciones correspondientes.
  • Dos números son estrictamente iguales cuando son numéricamente iguales (tienen el mismo valor numérico). NaN no es es igual a nada, incluyendo a NaN. Los ceros positivos y negativos son iguales entre sí. 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 Null y Undefined son == (pero no ===). [Es decir, (Null==Undefined) es true pero (Null===Undefined) es false]

Operadores de comparación - MDC

Comentarios (5)