JavaScript oferece recursos robustos para comparação de números, um aspecto crucial na construção de aplicativos dinâmicos e responsivos. Este guia explora as técnicas fundamentais para comparar valores numéricos de forma eficaz.
Sumário
- Operadores de Comparação
- Operadores Lógicos
- Encadeamento de Comparações
- Lidando com Casos Especiais (NaN, Infinity)
- Conclusão
Operadores de Comparação
JavaScript fornece seis operadores de comparação primários para avaliar relações numéricas. Esses operadores retornam um valor booleano (true
ou false
).
Operador | Descrição | Exemplo | Resultado |
---|---|---|---|
=== |
Igualdade Estrita (verifica o valor e o tipo) | 5 === 5 |
true |
!== |
Desigualdade Estrita | 5 !== "5" |
true |
> |
Maior Que | 10 > 5 |
true |
< |
Menor Que | 5 < 10 |
true |
>= |
Maior Que ou Igual A | 10 >= 10 |
true |
<= |
Menor Que ou Igual A | 5 <= 10 |
true |
Por que Igualdade Estrita (===
)? Usar a igualdade estrita é geralmente recomendado para prevenir conversão de tipo inesperada. O operador de igualdade frouxa (==
) realiza conversão de tipo antes da comparação, o que pode levar a erros.
5 == "5"; // true (ocorre conversão de tipo)
5 === "5"; // false (igualdade estrita; tipos são diferentes)
Operadores Lógicos
Operadores lógicos combinam múltiplas comparações, criando declarações condicionais complexas.
Operador | Descrição | Exemplo | Resultado (se num1 = 10, num2 = 5) |
---|---|---|---|
&& |
E Lógico (ambas as condições devem ser verdadeiras) | (num1 > 5) && (num2 < 10) |
true |
|| |
OU Lógico (pelo menos uma condição deve ser verdadeira) | (num1 0) |
true |
! |
NÃO Lógico (inverte o valor booleano) | !(num1 === num2) |
true |
let score = 85;
if (score >= 90 && score = 80 && score < 90) {
console.log("Nota B");
} else {
console.log("Abaixo da Nota B");
}
Encadeamento de Comparações
Para um código mais limpo, encadeie comparações quando verificar se um número está dentro de um intervalo:
let age = 25;
if (18 <= age && age < 65) {
console.log("Adulto");
}
Lidando com Casos Especiais (NaN, Infinity)
NaN
(Not a Number) e Infinity
requerem consideração especial:
NaN
nunca é igual a si mesmo:NaN === NaN
éfalse
. UseisNaN()
para verificarNaN
.Infinity
e-Infinity
têm comportamentos de comparação específicos.
isNaN(Number("hello")); // true
Infinity > 1000; // true
-Infinity < -1000; // true
Conclusão
Dominar as comparações numéricas em JavaScript é fundamental para construir aplicativos robustos. Usando eficazmente os operadores de comparação e lógicos, e compreendendo casos especiais, você pode criar código altamente funcional e confiável.