Questão de Programação — Linguagens de programação — FGV 2021
Programação›Linguagens 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:
Afalse, false, false, true, true;
Bfalse, true, false, false, false;
Cfalse, true, true, true, false;
Dtrue, true, false, false, true;
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] == 1 → true
x3[0] é o número 1. Comparando 1 == 1 (ambos number), sem coerção, resulta true.
x1 == x2 → true
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 == 16 → true.
x1 === x2 → false
O operador === não realiza coerção. Como x1 é number e x2 é string, os tipos são diferentes, logo a comparação é false.
true == x1 → false
O booleano true é convertido para número: Number(true) → 1. Então 1 == 16 → false.
true == x3[0] → true
Novamente, true vira 1 e x3[0] é 1. 1 == 1 → true.
1x3[0] == 1true
2x1 == x2true
3x1 === x2false
4true == x1false
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.