Questão de Programação — JavaScript — FGV 2023
- Código
- fg069603
- Banca
- FGV
- Órgão
- SEFAZ-MG
- Ano
- 2023
- Nível
- Superior
- Cargo
- Auditor Fiscal da Receita Estadual - Tecnologia da Informação (Tarde)
- A1 e 1
- Btrue e true
- C'1' e '1'
- Dfalse e false
- Etrue e false
GabaritoE — true e false
Gabarito: letra E. Em JavaScript, o operador == (igualdade solta) realiza coerção de tipo, portanto 1 == '1' retorna true. Já o operador === (igualdade estrita) compara valor e tipo sem coerção, então 1 === '1' retorna false. O resultado correto é true e false, exatamente como na alternativa E.
A questão testa o conhecimento da diferença fundamental entre os dois operadores. O candidato que confunde os comportamentos tende a achar que ambos retornam true (alternativa B) ou ambos false (alternativa D), ou ainda que retornam os próprios valores (alternativas A e C).
A banca explora a confusão clássica entre == e ===. Muitos candidatos lembram que == compara "valores iguais", mas esquecem que a ausência de coerção no === faz com que 1 (number) e '1' (string) sejam considerados diferentes. A dica é: sempre que houver tipos diferentes, === retorna false. Por outro lado, == tenta converter os operandos para o mesmo tipo antes de comparar, resultando em true neste caso.
Apresenta 1 e 1, como se o resultado dos operadores fosse o próprio valor comparado. No entanto, tanto == quanto === sempre retornam um valor booleano (true ou false), nunca o número 1. O erro é confundir o retorno com o operando.
Afirma que ambos os resultados são true. Isso seria verdade se === também realizasse coerção de tipo, o que não ocorre. O equívoco é estender o comportamento do == para o ===.
Apresenta '1' e '1', sugerindo que o retorno é uma string. Operadores de comparação retornam booleanos, não strings. Além disso, o valor comparado não é o retorno.
Afirma que ambos os resultados são false. Se fosse assim, 1 == '1' seria falso, mas a coerção de tipo do == os torna equivalentes. O erro é ignorar a conversão automática do operador de igualdade solta.
Exatamente como explicado: 1 == '1' é true (coerção) e 1 === '1' é false (sem coerção). O par true e false corresponde à alternativa E.
Gabarito: letra E.
Link permanente: /questoes/fg069603