No contexto do JavaScript, considere as seguintes afirmativa...

Próximas questões
Com base no mesmo assunto
Ano: 2022 Banca: FGV Órgão: MPE-GO Prova: FGV - 2022 - MPE-GO - Analista em Informática |
Q1912774 Programação
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 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: Letra D.

A alternativa correta é a letra D, que diz que as afirmativas I e III estão corretas. Vamos entender o porquê:

Afirmativa I: Afirmar que variáveis declaradas com let não podem ser redeclaradas no mesmo bloco é correto. Isso se deve ao fato de que let possui escopo de bloco, o que significa que, se você tentar declarar uma variável com o mesmo nome dentro do mesmo bloco, ocorrerá um erro. Isso é uma das diferenças entre let e var, já que var permite a redeclaração da variável no mesmo escopo.

Afirmativa II: Esta afirmação é incorreta. Variáveis declaradas com let não podem ser utilizadas em qualquer trecho do código (escopo global) se elas foram declaradas dentro de um bloco específico. Elas estão restritas ao bloco em que foram declaradas e não podem ser acessadas fora dele.

Afirmativa III: Esta afirmação é correta e trata de um comportamento conhecido como "hoisting" em JavaScript. Quando uma variável é declarada com var, ela é içada para o topo do seu escopo de função ou, se declarada fora de uma função, para o topo do escopo global. Isso significa que, mesmo dentro de um bloco, se você declarar uma variável com var, ela poderá ser acessada fora desse bloco, o que não é o caso com let.

Conhecendo esses conceitos de escopo e declaração de variáveis em JavaScript, ficamos com a letra D como a alternativa correta, confirmando que as afirmativas I e III são verdadeiras.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

GAB D

I - "let" e "const" não podem ser redeclarados porque são de escopo local. "var" pode ser redeclarado porque é de escopo global. Isso acontece para evitar problemas na hora do hoisting, porque a galera tem mania de usar "var" em tudo

II - "let" e "const" são de escopo local

III - "var" é de escopo global, ela vai ser hoisted para o topo do seu escopo e poderá ser utilizada em qualquer lugar

III. Só let e const podem ter escopo de bloco.

Fonte: https://www.w3schools.com/js/js_scope.asp

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo