Operadores de comparação no JavaScript

Introdução ao JavaScript / Tutorial 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.

OperadorDescriçãoExemploResultado
>Maior que10 > 5true
<Menor que10 < 5false
>=Maior ou igual10 >= 10true
<=Menor ou igual10 <= 5false
==Igualdade5 == '5'true
===Igualdade estrita5 === '5'false
!=Desigualdade5 != '5'false
!==Desigualdade estrita5 !== '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:

  1. Comparação caractere por caractere: As strings são comparadas caractere por caractere, da esquerda para a direita.
  2. Valores Unicode: Cada caractere tem um valor Unicode associado. Por exemplo, 'a' tem um valor menor que 'b', então 'apple' < 'banana' retorna true.
  3. 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' retorna true.

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.