2010-05-22 17 views

Respuesta

13

Es un operador de igualdad de tipo estricto. No solo verifica si dos son iguales en valor, sino también en el mismo tipo.

Considérese una situación en la que se comparan los números o cadenas:

if (4 === 4) // same value and type 
{ 
    // true 
} 

pero

if (4 == "4") // same value and different type but == used 
{ 
    // true 
} 

y

if (4 === "4") // same value but different type 
{ 
    // false 
} 

Esto se aplica a los objetos, así como matrices.

Así que en los casos anteriores, usted tiene que hacer la elección sensata si se debe utilizar == o ===

Es buena idea usar === cuando se está seguro sobre el tipo, así

+0

gracias por la respuesta rápida y completa, se establecerá como respuesta después de que hayan transcurrido los 15 minutos – ptrn

+0

@ptrn: De nada :) – Sarfraz

2

Cuando se desea inhibir typecasts implícitas. Por ejemplo:

3 == '3' 

es true, mientras que este no es:

3 === '3' 

Douglas Crockford recomienda utilizar siempre comparación estricta.

+0

Para ser sincero, siempre soy un poco dudoso cuando alguien dice "SIEMPRE" hacer xxx. Puedo ver situaciones en las que es deseable comparar un número con una cadena. Obviamente, puedes lanzar manualmente la cadena a un número, pero si JS puede hacerlo por ti, ¿para qué molestarse? :) – nico

+2

@nico, de acuerdo, hay casos donde simplemente no lo necesita, un caso común es cuando se quiere comparar contra 'null' y' undefined' en un solo paso, 'if (foo == null)' hace el trabajo, o cuando usa el operador 'typeof', tampoco lo necesita porque * siempre * devuelve una cadena ...' if (typeof foo == "undefined") 'es suficiente ... – CMS

1

Se utiliza para comprobar si el tipo y valor que contiene una variable es el mismo que el que se compara.