Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FGV 2021

ProgramaçãoLinguagens de programação
Código
fg045083
Banca
FGV
Órgão
TCE-AM
Ano
2021
Nível
Superior
Cargo
Auditor Técnico de Controle Externo - Tecnologia da Informação - 2ª dia
Considere o código JavaScript exibido logo abaixo.var x1 = 16;var x2 = "16";var x3 = [1,2,3];Usando as definições acima, analise as expressões a seguir.x3[0] == 1x1 == x2x1 === x2true == x1true == x3[0]Respectivamente, os valores retornados pelas expressões acima são:
  1. Afalse, false, false, true, true;
  2. Bfalse, true, false, false, false;
  3. Cfalse, true, true, true, false;
  4. Dtrue, true, false, false, true;
  5. Etrue, true, true, false, true.
Revelar gabarito e comentário

GabaritoD — true, true, false, false, true;

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 Igualdade e Coerção de Tipos

Gabarito: letra D. A sequência correta é true, true, false, false, true. A chave da questão está em entender a diferença entre o operador de igualdade abstrata (==), que realiza coerção de tipos, e o operador de igualdade estrita (===), que compara valor e tipo sem coerção.

Análise das expressões

x3[0] == 1true

x3[0] é o número 1. Comparando 1 == 1 (ambos number), sem coerção, resulta true.

x1 == x2true

x1 é o número 16, x2 é a string "16". O operador == força a conversão da string para número: Number("16")16. Assim, 16 == 16true.

x1 === x2false

O operador === não realiza coerção. Como x1 é number e x2 é string, os tipos são diferentes, logo a comparação é false.

true == x1false

O booleano true é convertido para número: Number(true)1. Então 1 == 16false.

true == x3[0]true

Novamente, true vira 1 e x3[0] é 1. 1 == 1true.

  1. 1x3[0] == 1true
  2. 2x1 == x2true
  3. 3x1 === x2false
  4. 4true == x1false
  5. 5true == x3[0]true
LEVEL · soulevel.com.br
NÃO CAIA NESSA!

A banca explora a confusão entre == e === e a coerção de booleanos para números (true → 1, false → 0). Muitos candidatos erram a quarta expressão achando que true == 16 seria verdadeiro, mas a coerção transforma true em 1, não em 16.

Gabarito: letra D.

Link permanente: /questoes/fg045083