En JavaScript, ¿’!=’ es lo mismo que ‘!==’? [duplicate]

3 minutos de lectura

avatar de usuario
roger

Posibles duplicados:

¿Qué operador es igual (== vs ===) debe usarse en las comparaciones de JavaScript?
¿Cuál es la diferencia entre los operadores != y !== en JavaScript?

Mirar este compromiso:

Es != lo mismo que !== en JavaScript?

  • Consulte stackoverflow.com/questions/359494/javascript-vs

    – Piscina

    22 de diciembre de 2009 a las 12:31

  • @S.Lott: Necesitaba saber que se llamaban “operadores de comparación de Javascript” por una cosa, lo que la pregunta no implica que él haga (para ser justos con el autor original).

    – Amadiere

    22 de diciembre de 2009 a las 12:39

  • Intenta escribir !== en google y ver que resultados obtienes. Incluso javascript !== – así que google no ayudará

    – Mottie

    22 de diciembre de 2009 a las 12:42

  • Otro engaño específico para !=: stackoverflow.com/questions/1889260/javascript-operator

    – Media Luna Fresca

    22 de diciembre de 2009 a las 13:40

  • @fudgey: Puedes buscar en Google muchas cosas… tal vez no lo encontró… El comentario de SLott está fuera de lugar

    usuario195488

    22 de diciembre de 2009 a las 14:26

Sutilmente no son lo mismo.

!= comprueba el valor
!== comprueba el valor y el tipo

'1' != 1   // false (these two are the same)
'1' !== 1 // true (these two are **not** the same).

En el ejemplo anterior. La primera mitad de la expresión es una cadena, la segunda mitad es un número entero.

avatar de usuario
martín

De Sintaxis JavaScript, Operadores,

!== No idéntico

!= No igual

Y “Idéntico significa igual y del mismo tipo”.

De 5.4. Operadores de igualdad:

“En JavaScript, los números, las cadenas y los valores booleanos se comparan por valor… Por otro lado, los objetos, las matrices y las funciones se comparan por referencia”.

Entonces, en resumen, ¿son lo mismo? No, porque hay una prueba adicional con !== (sobre !=) para el tipo igualdad tanto como igualdad.

No, no es lo mismo. Ver por ejemplo aquí.

4 !== '4' returns true   (and 4 === '4' returns false)
4 != '4'  returns false  (and 4 == '4'  returns true)

  • Y para los más delgados, no hay nada como las especificaciones. Puedes descargar la última desde aquí: ecma-international.org/publications/files/drafts Es el archivo PDF que comienza con “tc39-” (a partir de este escrito, tc39-2009-050.pdf). Eso dice que es un borrador, pero fue votado a principios de este mes.

    –TJ Crowder

    22 de diciembre de 2009 a las 12:42

  • Y consulte stackoverflow.com/questions/359494/… ¡cómo leer las especificaciones!

    – finalmente

    22 de diciembre de 2009 a las 13:21

  • Jeje, el hecho de que necesite un manual para leer una especificación realmente dice algo sobre la calidad de la especificación en sí 🙂

    – Fortega

    22 de diciembre de 2009 a las 13:29

avatar de usuario
Sean Devlin

La gran diferencia es que != realiza coerción de tipos. Es decir, un valor se convierte efectivamente en el otro antes de que se verifique la igualdad. Por eso, como en la respuesta de Amadiere:

'1' != 1

se evalúa como falso. Lo mismo es válido para == v. ===. En general, evite == y != a menos que desee específicamente que se realice la coerción. Use === y !== y verifique exactamente el resultado que está buscando.

avatar de usuario
Sarfraz

Comprueba no solo el valor, sino también el tipo de las cosas comparadas.

Esto también es lo mismo en PHP y algunos otros idiomas también.

¿Ha sido útil esta solución?