Operadores de Comparação Javascript

Javascript
Tempo de leitura: 3 minutos

Operadores de Comparação Javascript: Em qualquer linguagem de programação, a capacidade de comparar valores é o que permite que o código tome decisões. Em JavaScript, isso é feito por meio dos Operadores de Comparação, que avaliam uma relação e retornam um valor Booleano (true ou false).

O maior desafio em JS reside na distinção entre igualdade fraca e estrita, que é o ponto focal de bugs para iniciantes.

1. Igualdade: Estrita (===) vs. Fraca (==)

Esta é a distinção mais importante em JavaScript. Ela define se o comparador deve tentar converter os tipos de dados antes de avaliar a igualdade.

OperadorNomeFunçãoCoerção de Tipo?Uso Recomendado
===Igualdade EstritaCompara Valor E Tipo.NãoSEMPRE Preferido.
!==Desigualdade EstritaRetorna true se Valor OU Tipo forem diferentes.NãoSEMPRE Preferido.
==Igualdade FracaCompara Valor após Coerção de tipo.SimEvitar!
!=Desigualdade FracaDiferente em Valor após Coerção.SimEvitar!

🚨 Regra de Ouro: Use === e !==

O uso dos operadores estritos previne bugs de coerção:

JavaScript

let numero = 10;
let texto = "10";

console.log(numero == texto);  // true (O JS converte a String "10" para Number 10)
console.log(numero === texto); // false (Tipos são diferentes: Number vs String)

2. Operadores Relacionais

Estes operadores comparam a magnitude ou ordem dos valores, sendo diretos em comparações numéricas.

OperadorSignificadoExemplo
>Maior que5 > 3 é true
<Menor que5 < 3 é false
>=Maior ou igual a5 >= 5 é true
<=Menor ou igual a5 <= 5 é true

Strings: Ao comparar strings, a comparação é lexicográfica (alfabética) baseada na ordem Unicode. Ex: "a" < "b" é true.

3. Comparações Especiais e Referências

O comportamento de comparação em JavaScript tem nuances importantes para Objetos e valores especiais.

A. Objetos, Arrays e Funções (Referências)

Ao comparar dois objetos (incluindo Arrays e Funções), o JS não compara o conteúdo deles, mas sim se eles apontam para a mesma referência na memória.

JavaScript

let obj1 = { valor: 1 };
let obj2 = { valor: 1 };
let obj3 = obj1; // obj3 aponta para o mesmo objeto que obj1

console.log(obj1 === obj2); // false (Referências diferentes)
console.log(obj1 === obj3); // true (Mesma referência)

B. null, undefined e NaN

ComparaçãoResultado (==)Resultado (===)Explicação
null == undefinedtruefalseA igualdade fraca tem uma regra especial para eles.
null === undefinedfalsefalseTipos diferentes (null é considerado um tipo object histórico).
NaN == NaNfalsefalseNaN (Not a Number) não é igual a nada, nem a si mesmo.

Para verificar se um valor é NaN, use a função global isNaN().

4. Coerção de Tipos em Comparações Fracas (==)

A igualdade fraca pode converter booleanos, strings e números de formas inesperadas:

ExpressãoResultadoExplicação da Coerção
true == 1truetrue é convertido para o número 1.
false == 0truefalse é convertido para o número 0.
0 == ""trueO JS tenta converter a string vazia para 0.

✅ Conclusão Operadores de Comparação Javascript

Os operadores de comparação são o alicerce das decisões lógicas. O desenvolvedor JavaScript deve internalizar o uso exclusivo de igualdade estrita (===) e entender que a comparação de objetos funciona por referência, não por valor. Esse rigor é o que garante a precisão e a confiabilidade do seu código.

Toda jornada tem um início, e o início para se tornar um desenvolvedor web é dominar as seguintes tecnologias, que você encontra aqui mesmo:

HTML
HTML
CSS
CSS
Javascript
JavaScript

E se você gosta do nosso conteúdo, não deixe de contribuir adquirindo os serviços e produtos dos nossos apoiadores e empresas que somos associados:

Hospedagem Hostinger
Ofertas Amazon
Amazon Prime

Author: Thiago Rossi
Com mais de 20 anos de experiência em tecnologia, atuo como Engenheiro de Computação, desenvolvedor de sistemas, escritor e produtor de conteúdo. Minha trajetória passa pelo ensino técnico, desenvolvimento web, arquitetura de sistemas e criação de soluções voltadas para a indústria de jogos digitais. Acredito que conhecimento deve ser acessível e aplicável. Essa visão resultou em uma biblioteca com mais de 550 artigos gratuitos, abrangendo temas como desenvolvimento web, infraestrutura, inteligência artificial, Game Design, mercado de jogos e carreiras na indústria de games. Sou autor do livro "GDD – O Guia Definitivo", uma obra dedicada ao planejamento e documentação de jogos digitais, e criador do GameMeTRix, uma plataforma que auxilia desenvolvedores na análise e validação de ideias para jogos. Meu trabalho busca conectar planejamento, tecnologia e mercado para ajudar criadores a transformar boas ideias em projetos viáveis. Atualmente concentro meus estudos e projetos no desenvolvimento de jogos web, na criação de metodologias para validação de produtos digitais e na produção de conteúdo técnico voltado ao ecossistema de jogos. Meu compromisso é unir teoria, prática e experiência de mercado para contribuir com o crescimento de novos desenvolvedores e profissionais da área.