JavaScript ofrece capacidades robustas para comparar números, un aspecto crucial para construir aplicaciones dinámicas y receptivas. Esta guía explora las técnicas fundamentales para comparar valores numéricos de manera efectiva.
Tabla de Contenido
- Operadores de Comparación
- Operadores Lógicos
- Encadenamiento de Comparaciones
- Manejo de Casos Especiales (NaN, Infinito)
- Conclusión
Operadores de Comparación
JavaScript proporciona seis operadores de comparación principales para evaluar relaciones numéricas. Estos operadores devuelven un valor booleano (true
o false
).
Operador | Descripción | Ejemplo | Resultado |
---|---|---|---|
=== |
Igualdad estricta (comprueba el valor y el tipo) | 5 === 5 |
true |
!== |
Desigualdad estricta | 5 !== "5" |
true |
> |
Mayor que | 10 > 5 |
true |
< |
Menor que | 5 < 10 |
true |
>= |
Mayor que o igual a | 10 >= 10 |
true |
<= |
Menor que o igual a | 5 <= 10 |
true |
¿Por qué Igualdad Estricta (===
)? Generalmente se recomienda usar la igualdad estricta para evitar la coerción de tipo inesperada. El operador de igualdad flexible (==
) realiza la conversión de tipo antes de la comparación, lo que puede provocar errores.
5 == "5"; // true (se produce coerción de tipo)
5 === "5"; // false (igualdad estricta; los tipos son diferentes)
Operadores Lógicos
Los operadores lógicos combinan múltiples comparaciones, creando sentencias condicionales complejas.
Operador | Descripción | Ejemplo | Resultado (si num1 = 10, num2 = 5) |
---|---|---|---|
&& |
Y lógico (ambas condiciones deben ser verdaderas) | (num1 > 5) && (num2 < 10) |
true |
|| |
O lógico (al menos una condición debe ser verdadera) | (num1 0) |
true |
! |
NO lógico (invierte el valor booleano) | !(num1 === num2) |
true |
let score = 85;
if (score >= 90 && score = 80 && score < 90) {
console.log("Calificación B");
} else {
console.log("Por debajo de la Calificación B");
}
Encadenamiento de Comparaciones
Para un código más limpio, encadena comparaciones cuando compruebas si un número se encuentra dentro de un rango:
let edad = 25;
if (18 <= edad && edad < 65) {
console.log("Adulto");
}
Manejo de Casos Especiales (NaN, Infinito)
NaN
(Not a Number) e Infinity
requieren una consideración especial:
NaN
nunca es igual a sí mismo:NaN === NaN
esfalse
. UsaisNaN()
para comprobar si hayNaN
.Infinity
y-Infinity
tienen comportamientos de comparación específicos.
isNaN(Number("hello")); // true
Infinity > 1000; // true
-Infinity < -1000; // true
Conclusión
Dominar las comparaciones numéricas en JavaScript es fundamental para construir aplicaciones robustas. Al utilizar eficazmente los operadores de comparación y lógicos, y comprender los casos especiales, puedes crear un código altamente funcional y fiable.