JavaScriptSintaxeintermediario

Operadores de comparação

Ao comparar valores em JavaScript, usar o operador errado pode introduzir bugs silenciosos. Em código real, == converte os operandos para o mesmo tipo antes de comparar, o que leva a resultados inesperados como 0 == false ser verdadeiro. Já === exige igualdade de tipo e valor, sendo mais previsível. Dominar essa diferença evita armadilhas comuns em validações e lógicas condicionais.

O PROBLEMA

Demonstre a diferença entre == e === com exemplos de coerção de tipo. Compare: 0 == false, 0 === false, "" == false, null == undefined.

EXEMPLO

0 == false → true
0 === false → false
"" == false → true
null == undefined → true
null === undefined → false

SOBRE O CONCEITO

O operador == realiza coerção de tipo, convertendo automaticamente os operandos para um tipo comum antes da comparação. Por exemplo, 0 == false resulta em true porque false é convertido para 0. Já === não faz coerção: 0 === false retorna false pois tipos diferentes (number vs boolean) já impedem a igualdade. O mesmo ocorre com "" == false (true, pois string vazia vira 0 e false vira 0) e null == undefined (true, por regra especial da linguagem), enquanto null === undefined é false. O erro comum é usar == e acreditar que a comparação será estrita, gerando bugs difíceis de encontrar. Prefira === a menos que tenha um motivo explícito para permitir coerção.

RESOLUÇÃO

Mais exercícios de Sintaxe

JSB002 · BásicoSaudação personalizadaJSB001 · BásicoOlá, mundo!JSB003 · BásicoSoma de dois númerosJSB004 · BásicoTipos de dados
Ver todos os exercícios de JavaScript