Questão de Programação — Linguagens de programação — FUNDATEC 2025
Programação›Linguagens de programação
Código
qg477102
Banca
FUNDATEC
Órgão
Prefeitura de Lajeado - RS
Ano
2025
Nível
Superior
Cargo
Analista de Sistemas
Analise o seguinte trecho de código JavaScript:O que será exibido na tela ao executar esse script e por quê?
A"Diferentes!", pois os tipos são distintos.
B"Diferentes!", pois os valores são comparados com coerção.
C"Iguais!", pois o operador "==" compara apenas os valores.
D"Iguais!", pois o operador "==" força igualdade de tipo e valor.
EO código gerará erro de execução.
Revelar gabarito e comentário▾
GabaritoC — "Iguais!", pois o operador "==" compara apenas os valores.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Operadores de comparação em JavaScript: == vs ===
Gabarito: letra C. O operador == (igualdade abstrata) compara apenas os valores, realizando a coerção de tipo (conversão automática) quando os operandos são de tipos diferentes. Portanto, se o código compara um número e uma string com o mesmo valor numérico, o resultado é true e o script exibe "Iguais!". O operador === (igualdade estrita) é que compara valor e tipo, sem coerção.
O JavaScript é uma linguagem fracamente tipada, o que significa que as variáveis não têm um tipo fixo e o interpretador realiza conversões automáticas entre tipos em diversas operações. Essa característica é a base para o comportamento dos operadores de comparação. Existem dois operadores principais para verificar igualdade:
== (igualdade abstrata ou frouxa): compara os valores após aplicar a coerção de tipo. Se os tipos forem diferentes, o JavaScript tenta convertê-los para um tipo comum antes de comparar. Por exemplo, 5 == "5" retorna true, pois a string "5" é convertida para o número 5.
=== (igualdade estrita ou identidade): compara os valores sem realizar coerção de tipo. Se os tipos forem diferentes, o resultado é false, mesmo que os valores sejam equivalentes. Por exemplo, 5 === "5" retorna false, pois um é número e o outro é string.
A coerção de tipo é o processo de converter um valor de um tipo para outro. No caso do ==, a coerção é implícita e segue regras específicas da linguagem. Por exemplo, ao comparar um número com uma string, a string é convertida para número. Ao comparar um booleano com qualquer outro tipo, o booleano é convertido para número (true vira 1 e false vira 0).
Exemplo prático:
let a = 10;
let b = "10";
console.log(a == b); // true, pois "10" é convertido para o número 10
console.log(a === b); // false, pois os tipos são diferentes (number vs string)
A distinção entre == e === é um dos conceitos mais cobrados em provas de JavaScript, justamente por ser uma fonte comum de bugs. A banca explora a confusão entre os dois operadores, apresentando alternativas que misturam os conceitos de "comparar valores" e "comparar tipo e valor".
NÃO CAIA NESSA!
A banca troca o comportamento do == pelo do ===. A alternativa D afirma que o == "força igualdade de tipo e valor", o que é exatamente o que o === faz. O == apenas compara valores, com coerção de tipo. Lembre-se: == compara valores (com conversão), === compara valor e tipo (sem conversão).
Operadores de igualdade
1== (igualdade abstrata)
Compara valores
Coerção de tipo
5 == "5" → true
2=== (igualdade estrita)
Compara valor e tipo
Sem coerção
5 === "5" → false
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Afirma que o resultado é "Diferentes!" porque os tipos são distintos. Isso seria verdadeiro se o operador usado fosse ===, que não realiza coerção de tipo. Como o código usa ==, a coerção é aplicada e os valores são comparados, resultando em "Iguais!". A alternativa confunde o comportamento do == com o do ===.
Alternativa B — ❌ Incorreta
Afirma que o resultado é "Diferentes!" porque os valores são comparados com coerção. A primeira parte está correta (o == compara com coerção), mas a conclusão está errada. A coerção de tipo faz com que valores de tipos diferentes sejam convertidos para um tipo comum, e se os valores forem iguais, o resultado é true. Portanto, o script exibirá "Iguais!", não "Diferentes!".
Alternativa C — ✅ Correta ⟵ GABARITO
Esta é a alternativa correta. O operador == compara apenas os valores, aplicando a coerção de tipo quando necessário. Se os valores forem iguais, o resultado é true, e o script exibe "Iguais!". A alternativa descreve precisamente o comportamento do operador de igualdade abstrata.
Alternativa D — ❌ Incorreta
Afirma que o == "força igualdade de tipo e valor". Isso é incorreto. O operador que força a igualdade de tipo e valor é o === (igualdade estrita). O == não exige que os tipos sejam iguais; ele converte os tipos automaticamente para comparar os valores. A alternativa descreve o comportamento do ===, não do ==.
Alternativa E — ❌ Incorreta
Afirma que o código gerará erro de execução. Não há erro de execução ao comparar um número com uma string usando ==. O JavaScript é uma linguagem dinâmica e permite esse tipo de comparação, aplicando a coerção de tipo. O script executará normalmente e exibirá "Iguais!".