freeCodeCamp/guide/spanish/miscellaneous/equality-vs-identity-operator/index.md

2.6 KiB

title localeTitle
Equality Vs Identity Operator Operador de Identidad Igualdad Vs

En JavaScript hay 2 operadores que podrían usarse para comparar dos valores: == y === . Parecen ser exactamente iguales pero funcionan de manera diferente y en algunos casos darán resultados diferentes.

Operador de equidad

El operador de igualdad (==) compara dos valores después de todas las conversiones de tipo necesarias. Echemos un vistazo a algunos ejemplos:

0 == ''             // -> true 
 false == 'false'    // -> false 

En el primer ejemplo, tanto 0 como '' (cadena vacía) se someten a conversión automática. Ambos se convierten a dar falsos:

false == false 

Lo que obviamente es cierto . En el segundo ejemplo, "falso" , una cadena no vacía se evalúa como verdadera haciendo que toda la expresión sea falsa.

Operador de identidad

En comparación, el operador de identidad (===) devolverá verdadero si y solo si ambos valores que se comparan son del mismo tipo y tienen el mismo valor. Si intentamos comparar valores de dos tipos diferentes, siempre devolverá falso .

false === 0            // -> false 
 0 === ''              // -> false 
 5 === 5                  // -> true 

Para ser precisos, === comprueba si dos variables hacen referencia al mismo objeto, o en el caso de tipos de valor (como int , double , String , bool , etc.) si ambas tienen el mismo valor.

var array1 = [ 5, 6, 7 ]; 
 var array2 = [ 5, 6, 7 ]; 
 var array3 = array2; 
 
 array1 === array2      // -> false 
 array1 == array2      // -> false 
 
 array2 === array3      // -> true 
 array2 == array3      // -> true 

Tanto array1 como array2 tienen el mismo tipo y son iguales, pero la comparación array1 === array2 devuelve false cuando se refieren a objetos diferentes. array2 === array3 devuelve verdadero cuando ambas variables se refieren al mismo objeto.

¿Qué operador debo usar?

Es importante entender la diferencia entre == y === pero ¿qué operador se debe usar?

Cuando se utiliza el operador == , JavaScript realizará todas las conversiones necesarias para comparar dos valores. Parece ser realmente conveniente, pero los efectos de esta conversión pueden ser confusos y hacer que sea muy difícil rastrear errores.

Douglas Crockford, autor del libro JavaScript: The Good Parts sugiere que se debe usar === en todas partes, en lugar de en el operador == para evitar posibles errores. En la mayoría de los casos, debe seguir este consejo, a menos que desee aprovechar específicamente la conversión automática de tipos.