Questão nº 41
Questão de Análise de Sistemas · FGV TJDFT 2022 (nº 41)
No contexto do JavaScript, analise as afirmativas a seguir a respeito do comportamento do JS de mover declarações para o top (em inglês, Hoisting).
I. Variáveis declaradas por meio de var podem ser utilizadas antes de declaradas.
II. Variáveis declaradas com let e const são movidas para o topo do bloco somente quando inicializadas na declaração.
III. Usar uma constante (const) antes de declarada gera um erro de sintaxe.
Está correto o que se afirma em:
- Asomente I;
- Bsomente I e II;
- Csomente I e III; (alternativa correta)
- Dsomente II e III;
- EI, II e III.
Resposta comentada
Gabarito Alternativa C
Hoisting é o comportamento do JavaScript de “içar” (mover) as declarações de variáveis e funções para o topo do seu escopo durante a compilação, antes da execução do código. Isso significa que a declaração existe desde o início, mas o valor (inicialização) só é atribuído no ponto original do código.
- (A) Incorreta: A afirmativa I está correta, pois variáveis com
varsão içadas e inicializadas comundefined, permitindo uso antes da declaração (sem erro, mas com valor indefinido). Porém, a alternativa A diz “somente I”, ignorando que a III também está correta. - (B) Incorreta: A afirmativa II é falsa:
leteconstsão içadas para o topo do bloco, mas não são inicializadas (ficam na “zona morta temporal”), então usá-las antes da declaração gera erro de referência, independentemente de inicialização na declaração. - (C) Correta: O gabarito oficial é esta. A afirmativa I está correta (
varé içada e inicializada comundefined). A afirmativa III está correta: usarconstantes da declaração gera erro de referência (não de sintaxe, mas a banca considera “erro” de forma genérica; o importante é que não é permitido). A II está incorreta, poislet/constsão içadas, mas ficam na “zona morta temporal” até a linha da declaração. - (D) Incorreta: A afirmativa II é falsa (como explicado), então qualquer alternativa que a inclua está errada.
- (E) Incorreta: A afirmativa II é falsa, então não podem ser todas verdadeiras.
Armadilha da banca: O distrator mais tentador é a letra B (“somente I e II”), porque muitos alunos lembram que let e const têm hoisting, mas esquecem que elas não são inicializadas no topo — ficam na “zona morta temporal”. A banca explora essa confusão: a II diz “somente quando inicializadas na declaração”, o que é falso, pois o hoisting de let/const ocorre sempre, mas o uso antes da declaração sempre gera erro, mesmo se houver inicialização na própria declaração.
Fonte: FGV TJDFT 2022 Analista Judiciário - Análise de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.