Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2024
Programação›Linguagens de programação
Código
ce176619
Banca
CESPE / CEBRASPE
Órgão
MPE-GO
Ano
2024
Nível
Superior
Cargo
Analista em Informática
Julgue o próximo item, relativo a Java, JavaScript e Python.Considerando-se que o código precedente foi desenvolvido em JavaScript, é correto afirmar que o resultado, após sua execução, será***MPGO
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoC — Certo
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”.
JavaScript: operadores de comparação e coerção de tipos
Gabarito: letra C (CERTO). O código JavaScript, ao comparar a string '10' com o número 10 usando o operador de igualdade ==, retorna true porque o JavaScript realiza a coerção de tipos antes da comparação, convertendo a string em número. O resultado da execução é true, o que torna a afirmação correta.
O JavaScript é uma linguagem de tipagem dinâmica e fracamente tipada, o que significa que as variáveis não têm um tipo fixo e que o interpretador realiza conversões automáticas de tipo quando necessário. Essa característica é fundamental para entender o comportamento dos operadores de comparação. Existem dois operadores principais de igualdade: == (igualdade abstrata) e === (igualdade estrita). A diferença crucial entre eles é que o == compara os valores após converter os operandos para um tipo comum, enquanto o === compara tanto o valor quanto o tipo, sem realizar nenhuma conversão.
Vamos analisar o código da questão. A expressão '10' == 10 é avaliada da seguinte forma: o operador == tenta converter os operandos para o mesmo tipo. Nesse caso, a string '10' é convertida para o número 10. Após a conversão, a comparação se torna 10 == 10, que é true. Portanto, o resultado da execução é true.
A pegadinha dessa questão está em confundir o operador == com o operador ===. Se o código usasse ===, a comparação seria '10' === 10, que retornaria false, pois os tipos são diferentes (string e número). A banca explora exatamente essa confusão entre os dois operadores, que é um erro comum para quem está começando a programar em JavaScript.
Para fixar o conceito, veja a tabela comparativa:
Operador
Nome
Compara
Exemplo
Resultado
==
Igualdade abstrata
Valores após coerção de tipo
'10' == 10
true
===
Igualdade estrita
Valor e tipo, sem coerção
'10' === 10
false
!=
Diferença abstrata
Valores após coerção de tipo
'10' != 10
false
!==
Diferença estrita
Valor e tipo, sem coerção
'10' !== 10
true
NÃO CAIA NESSA!
A banca troca o operador == pelo === para induzir ao erro. O candidato que memoriza que == compara apenas valores e === compara valor e tipo, mas não aplica a regra da coerção, pode marcar a alternativa errada. Lembre-se: == converte os tipos antes de comparar, enquanto === não converte. Com treino, você enxerga essas trocas de longe 💪.
Item — ✅ CERTO
A afirmação de que o resultado da execução do código JavaScript é true está correta. A expressão '10' == 10 utiliza o operador de igualdade abstrata ==, que realiza a coerção de tipos. A string '10' é convertida para o número 10, e a comparação 10 == 10 resulta em true. Portanto, o item está CERTO.