Operadores de comparação no JavaScript
Os operadores de comparação no JavaScript são usados para comparar valores. Eles retornam um valor booleano (true
ou false
) dependendo do resultado da comparação.
Operador | Descrição | Exemplo | Resultado |
---|---|---|---|
> | Maior que | 10 > 5 | true |
< | Menor que | 10 < 5 | false |
>= | Maior ou igual | 10 >= 10 | true |
<= | Menor ou igual | 10 <= 5 | false |
== | Igualdade | 5 == '5' | true |
=== | Igualdade estrita | 5 === '5' | false |
!= | Desigualdade | 5 != '5' | false |
!== | Desigualdade estrita | 5 !== '5' | true |
Igualdade (==
)
O operador ==
compara os valores, mas não os tipos.
console.log(5 == '5') // true (valores iguais, tipos diferentes)
Igualdade Estrita (===
)
O operador ===
compara tanto os valores quanto os tipos.
console.log(5 === '5') // false (valores iguais, tipos diferentes)
No exemplo acima, o valor 5
(número) é comparado com '5'
(string). Apesar de os valores serem iguais, os tipos são diferentes (number
e string
), então o resultado da comparação é false
.
Desigualdade (!=
)
O operador !=
verifica se os valores são diferentes, ignorando os tipos.
console.log(5 != '5') // false (valores iguais, tipos diferentes)
Desigualdade Estrita (!==
)
O operador !==
verifica se os valores ou os tipos são diferentes.
console.log(5 !== '5') // true (valores iguais, tipos diferentes)
No exemplo acima, o valor 5
(número) é comparado com '5'
(string). Como os tipos são diferentes (number
e string
), a comparação retorna true
, indicando que os valores ou os tipos não são iguais.
Comparações Numéricas
Os operadores >
, <
, >=
e <=
são usados para comparar valores numéricos.
console.log(10 > 5) // true
console.log(10 < 5) // false
console.log(10 >= 10) // true
console.log(10 <= 5) // false
Mais exemplos de operadores de comparação
Aqui estão mais exemplos para ajudar a entender como os operadores de comparação funcionam:
Igualdade (==
) e Igualdade Estrita (===
)
console.log('10' == 10) // true (valores iguais, tipos diferentes)
console.log('10' === 10) // false (valores iguais, tipos diferentes)
console.log(0 == false) // true (0 é considerado "falsy")
console.log(0 === false) // false (tipos diferentes: number e boolean)
Desigualdade (!=
) e Desigualdade Estrita (!==
)
console.log('10' != 10) // false (valores iguais, tipos diferentes)
console.log('10' !== 10) // true (valores iguais, tipos diferentes)
console.log(null != undefined) // false (são tratados como iguais)
console.log(null !== undefined) // true (tipos diferentes)
Comparações Numéricas
console.log(15 > 10) // true
console.log(15 < 10) // false
console.log(15 >= 15) // true
console.log(15 <= 10) // false
console.log(-5 < 0) // true
console.log(5 > 5) // false
Comparações com Strings
No JavaScript, as comparações entre strings são feitas com base na ordem alfabética (ordem lexicográfica), que utiliza os valores Unicode de cada caractere. Isso significa que:
- Comparação caractere por caractere: As strings são comparadas caractere por caractere, da esquerda para a direita.
- Valores Unicode: Cada caractere tem um valor Unicode associado. Por exemplo,
'a'
tem um valor menor que'b'
, então'apple' < 'banana'
retornatrue
. - Case-sensitive: A comparação é sensível a maiúsculas e minúsculas. Por exemplo,
'A'
tem um valor Unicode menor que'a'
, então'Apple' < 'apple'
retornatrue
.
Exemplo:
console.log('abc' > 'abd') // false (o terceiro caractere 'c' é menor que 'd')
console.log('abc' < 'abcd') // true (a string 'abc' é menor porque é mais curta)
console.log('Zebra' > 'apple') // false ('Z' tem valor Unicode menor que 'a')
Essas regras tornam a comparação entre strings útil para ordenar ou verificar a ordem alfabética, mas é importante lembrar que a sensibilidade a maiúsculas e minúsculas pode afetar os resultados.
Mais alguns exemplos:
console.log('apple' > 'banana') // false (ordem lexicográfica)
console.log('apple' < 'banana') // true
console.log('apple' === 'apple') // true
console.log('apple' !== 'Apple') // true (case-sensitive)
Conclusão
Os operadores de comparação são fundamentais para a lógica de programação, permitindo que você tome decisões com base em condições. Entender a diferença entre igualdade simples e estrita, bem como os outros operadores, é essencial para escrever código robusto e confiável.