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
ce190866
Banca
CESPE / CEBRASPE
Órgão
TST
Ano
2024
Nível
Médio
Cargo
Técnico Judiciário - Área: Apoio Especializado - Especialidade: Programação
<html><body><p id="demo"></p><script>let x = 10;{let x = 1;x = x - 1;}{let x = 3;x = x + 5;}{let x = 20;x = x + 2;}document.getElementById("demo").innerHTML = x;</script></body></html>Considerando o código precedente, desenvolvido em ECMAScript 6, assinale a opção que apresenta o resultado mostrado ao usuário ao final da execução desse código.
  1. A0
  2. B8
  3. C10
  4. D12
  5. E22
Revelar gabarito e comentário

GabaritoC — 10

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: Escopo de bloco com let

Gabarito: Letra C – 10. A variável x global é declarada com let e inicializada em 10. Os blocos { ... } criam escopos de bloco independentes; dentro de cada um, uma nova variável x local é declarada com let, e as operações alteram apenas essas variáveis locais, sem afetar a global. Ao final, o x global permanece 10, que é exibido na página.

Alternativa A – ❌ Incorreta

Afirma que o resultado é 0. Esse valor seria o de x no primeiro bloco após x = x - 1 (1 - 1 = 0), mas é uma variável local, não a global.

Alternativa B – ❌ Incorreta

Afirma que o resultado é 8. Esse é o valor de x no segundo bloco (3 + 5 = 8), porém também local.

Alternativa C – ✅ Correta ⟵ GABARITO

A variável global x nunca foi alterada dentro dos blocos, pois cada bloco declarou sua própria variável x com let. Portanto, x global continua 10.

Alternativa D – ❌ Incorreta

Afirma que o resultado é 12. Esse é o valor de x no terceiro bloco (20 + 2 = 22, não 12? Na verdade, 20+2=22, então 12 não corresponde a nenhum bloco. Pode ser um distrator.

Alternativa E – ❌ Incorreta

Afirma que o resultado é 22. Esse é o valor de x no terceiro bloco (20+2=22), mas local.

NÃO CAIA NESSA!

A banca explora a confusão entre escopo de bloco e escopo de função. Em JavaScript, let cria escopo de bloco, então cada par de chaves { } isola a variável declarada dentro. O candidato pode acreditar que as operações nos blocos alteram a variável global, mas isso não acontece. Para acertar, lembre-se: let dentro de um bloco é uma variável independente.

Gabarito: Letra C – 10.

Link permanente: /questoes/ce190866