Pular para o conteúdo principal

Questão de Programação — JavaScript — FGV 2023

ProgramaçãoJavaScript
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)
Considere as seguintes expressões usando a linguagem javascript:1 == '1' e 1 === '1'Os resultados são, respectivamente,
  1. A1 e 1
  2. Btrue e true
  3. C'1' e '1'
  4. Dfalse e false
  5. Etrue e false
Revelar gabarito e comentário

GabaritoE — true e false

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 igualdade em JavaScript (== vs ===)

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).

NÃO CAIA NESSA!

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.

1== (igualdade solta)
Faz coerção de tipo
1 == '1' → true
2=== (igualdade estrita)
Sem coerção de tipo
1 === '1' → false
3Resultado
Booleano (true/false)
Nunca o valor comparado
Operadores de igualdade (JS)
LEVELsoulevel.com.br
Operadores de igualdade (JS): == (igualdade solta) (Faz coerção de tipo, 1 == '1' → true); === (igualdade estrita) (Sem coerção de tipo, 1 === '1' → false); Resultado (Booleano (true/false), Nunca o valor comparado)

Alternativa A — ❌ Incorreta

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.

Alternativa B — ❌ Incorreta

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 ===.

Alternativa C — ❌ Incorreta

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.

Alternativa D — ❌ Incorreta

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.

Alternativa E — ✅ Correta ⟵ GABARITO

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