Operadores de comparación en JavaScript

Author
Por Darío Rivera
Publicado el en Javascript

Los operadores de comparación son utilizados en JavaScript para comparar los valores y objetos del lenguaje en busca de igualdad o diferencia. En este post verás a detalle cada operador de comparación.

Comparador de igualdad abstracta ( == )

Este comparador devuelve true si el valor de dos expresiones o valores es el mismo. Si los tipos son distintos se intentará realizar un cambio de tipo o casting para comparar los valores. Por ejemplo:

x op y thruly
7 == 7 true
7 == '7' true
1 == true true
0 == true false
'f' == 'f' true
null == null true
NaN == NaN false
{} == {} false
[] === [] false
+0 == -0 true

Nótese que 1==true, cualquier otro número distinto de uno es equivalente a false.

Comparador de igualdad estricta ( === )

Este comparador devuelve true si el valor y tipo de dos expresiones o valores es el mismo. Por ejemplo:

x op y thruly
7 === 7 true
7 === '7' false
1 === true false
0 === true false
'f' === 'f' true
null === null true
NaN === NaN false
{} === {} false
[] === [] false
+0 === -0 true

Nótese que ha sido decisión del lenguaje que en este caso +0===-0. Por otro lado, ningún objeto es igual a otro objeto ({}==={}) lo cual incluye arrays también (ya que son objetos) y ningún NaN es igual a otro NaN.

Nota: Para comparar una expresión o valor NaN con otro puedes utilizar Object.is.

Object.is

Con Object.is puedes comparar de la misma manera como lo haces con ===. La única diferencia radica en la comparación de estos dos valores:

x op y thruly
NaN Object.is NaN true
+0 Object.is -0 false

Este comparador trata todas las instancias de NaN como iguales.

Operadores != y !==

Estos operadores son los contrarios de == y === respectivamente. Cuando se utilizan arrojan el valor contrario a su contraparte.

Operadores < y >

Estos operadores son los clásicos de la matemática. Funcionan tal y cual como se esperaría con la adición de que javascript hace el casting de los valores como en el caso de ==. Ejemplo:

x op y thruly
5 < '8' true
8 > 10 false
10 >= 5 true
1 >= true true

Acerca de Darío Rivera

Author

Application Architect at Elentra Corp . Quality developer and passionate learner with 10+ years of experience in web technologies. Creator of EasyHttp , an standard way to consume HTTP Clients.

LinkedIn Twitter Instagram

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.