Questão nº 43

Questão de Tecnologia da Informação · FGV MPGO Servidores 2022 (nº 43)

FGV2022Analista em InformáticaTecnologia da Informação
Gabarito: Dver comentário ↓

No contexto do JavaScript, considere as seguintes afirmativas sobre a declaração de variáveis com let ou var.
I. Variáveis declaradas com let não podem ser redeclaradas no mesmo `{ }` bloco.
II. Variáveis declaradas com let podem ser utilizadas em qualquer trecho do código (escopo global).
III. Variáveis declaradas com var no interior de um `{ }` bloco podem ser utilizadas fora do bloco de origem.
Está correto o que se afirma apenas em

Resposta comentada

Gabarito Alternativa D

Conceito-chave: let e var são palavras-chave para declarar variáveis, mas diferem em escopo (onde a variável existe) e redeclaração. let respeita o bloco { } (escopo de bloco) e não permite redeclarar a mesma variável no mesmo bloco; var ignora o bloco (exceto funções) e permite redeclaração.

  • (A) Incorreta: A afirmativa I é verdadeira, mas a II é falsa (variáveis let têm escopo de bloco, não global), então a alternativa que só cita I está incompleta.
  • (B) Incorreta: A afirmativa II é falsa: let não é global, só existe dentro do bloco onde foi declarada.
  • (C) Incorreta: A afirmativa II é falsa, então a combinação I e II não pode ser correta.
  • (D) Correta: I é verdadeira (let não pode ser redeclarada no mesmo bloco) e III é verdadeira (var vaza do bloco { } para fora, pois só respeita escopo de função). Esta é a resposta do gabarito oficial.
  • (E) Incorreta: A afirmativa II é falsa, então a combinação II e III não pode ser correta.

Armadilha do distrator mais tentador (C): A banca junta a afirmativa I (verdadeira) com a II (falsa) para pegar quem confunde let com var. Muita gente acha que let é "global" porque pode ser usada fora de funções, mas isso só vale se for declarada no escopo raiz (fora de qualquer bloco). A pegadinha é que a afirmativa II diz "qualquer trecho do código", o que é falso: se você declarar let dentro de um if ou for, ela não existe fora daquele bloco. Já a III é verdadeira justamente porque var ignora o bloco { } — essa é a diferença clássica que a banca quer testar.

Fonte: FGV MPGO Servidores 2022 Analista em Informática (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho