No ES6 (ECMAScript 2015), qual palavra-chave introduzida pe...

Próximas questões
Com base no mesmo assunto
Q2447159 Programação
No ES6 (ECMAScript 2015), qual palavra-chave introduzida permite declarar variáveis com escopo de bloco, reduzindo problemas associados ao hoisting e ao escopo global inadvertido?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: C - let

Vamos explorar o contexto dessa questão:

O ES6 (ECMAScript 2015) introduziu diversas melhorias e novos conceitos na linguagem JavaScript, com o intuito de resolver problemas comuns e tornar o código mais seguro e previsível. Um dos problemas abordados foi o escopo de variáveis e o hoisting, que é o comportamento padrão do JavaScript de mover declarações para o topo do escopo.

Anteriormente, no JavaScript, utilizava-se a palavra-chave var para declarar variáveis. No entanto, var possui escopo de função e não de bloco, o que pode levar a comportamentos inesperados quando as variáveis são usadas fora de seu bloco de origem.

Com a introdução do ES6, foram adicionadas duas novas palavras-chave para declaração de variáveis: let e const. Ambas possuem escopo de bloco, ou seja, são limitadas ao bloco onde foram declaradas (como dentro de um if, for ou while), e não ao escopo de função ou global, reduzindo significativamente problemas associados ao hoisting e ao escopo global inadvertido.

Justificativa da alternativa correta:

A alternativa correta é a alternativa C - let.

A palavra-chave let permite declarar variáveis com escopo de bloco, o que significa que a variável só existe dentro do bloco onde foi criada. Isso melhora a legibilidade e manutenção do código, além de evitar muitos dos problemas tradicionais associados ao uso de var, como o uso inadvertido de variáveis globais e comportamentos inesperados causados pelo hoisting.

Por que as outras alternativas estão incorretas:

A - var

A palavra-chave var possui escopo de função, não de bloco. Portanto, ela não resolve os problemas mencionados, como o hoisting e o escopo global inadvertido.

B - const

A palavra-chave const também foi introduzida no ES6 e possui escopo de bloco, assim como let. No entanto, const é usada para declarar constantes, ou seja, variáveis que não podem ser reatribuídas depois de sua declaração. A questão pede especificamente uma palavra-chave para declaração de variáveis com escopo de bloco, e let é a opção mais adequada, pois permite reatribuição de valor.

D - function

A palavra-chave function é usada para declarar funções em JavaScript. Embora funções possam ter escopo de bloco, a questão é sobre a declaração de variáveis, não funções. Portanto, esta alternativa não é pertinente.

Espero que esta explicação tenha esclarecido suas dúvidas sobre o tema. Caso tenha mais questões ou precise de mais detalhes, estou à disposição para ajudar!

Clique para visualizar este gabarito

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