asignacion - Diferencia entre== y=== en JavaScript
javascript== vs=== (2)
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?
Eche un vistazo aquí: http://longgoldenears.blogspot.com/2007/09/triple-equals-in-javascript.html
Los 3 signos iguales significan "igualdad sin coacción tipo". Usando el triple igual, los valores también deben ser iguales en tipo.
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
===
y !==
son operadores de comparación estrictos:
JavaScript tiene una comparación de igualdad estricta y de conversión de tipos. Para
strict
igualdadstrict
los objetos que se comparan 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 igual a nada, incluyendoNaN
. 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
Object
.Null
tiposNull
eUndefined
son==
(pero no===
). [Es decir (Null==Undefined
) estrue
pero (Null===Undefined
) esfalse
]