Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2024

ProgramaçãoLinguagens 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.Imagem associada para resolução da questãoConsiderando-se que o código precedente foi desenvolvido em JavaScript, é correto afirmar que o resultado, após sua execução, será***MPGO
  1. CCerto
  2. 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.

Gabarito: letra C (CERTO).

Link permanente: /questoes/ce176619