Operadores de comparación 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 |