Analise as afirmações abaixo sobre declaração de variáveis: ...

Próximas questões
Com base no mesmo assunto
Q1853860 Programação
Analise as afirmações abaixo sobre declaração de variáveis:
I. let declara uma variável presa em um contexto, seja este dentro de uma função, seja dentro de um if.
II. É possível alterar o valor de uma variável const.
III. As declarações de variáveis utilizando var possuem escopo elevado, conhecido como hoisting.
Está(ão) correta(s) apenas a(s) afirmativa(s)
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: C - I e III.

A questão aborda o tema da declaração de variáveis em JavaScript, focando nos conceitos de escopo e hoisting. O entendimento destes conceitos é fundamental para o desenvolvimento de códigos consistentes e sem erros de execução relacionados ao uso de variáveis.

I. let declara uma variável presa em um contexto, seja este dentro de uma função, seja dentro de um if.

Esta afirmação é verdadeira. A palavra-chave let foi introduzida no ES6 (ECMAScript 2015) para permitir a declaração de variáveis com escopo de bloco, que é limitado a qualquer bloco de código delimitado por chaves ({}), como dentro de funções, blocos if, loops e outros.

II. É possível alterar o valor de uma variável const.

Esta afirmação é incorreta. A palavra-chave const é usada para declarar uma constante, o que significa que, uma vez atribuído um valor a ela, esse valor não pode ser alterado durante a execução do programa. No entanto, se a constante for um objeto ou array, os elementos ou propriedades do objeto podem ser alterados, mas a referência ao objeto ou array em si não pode.

III. As declarações de variáveis utilizando var possuem escopo elevado, conhecido como hoisting.

Esta afirmação é verdadeira. Ao utilizar var, a variável é sujeita ao hoisting, um comportamento do JavaScript onde as declarações de variáveis são movidas para o topo do seu escopo antes da execução do código. Isso significa que as variáveis podem ser utilizadas antes de serem explicitamente declaradas, ainda que o valor delas seja undefined até que a sua declaração seja alcançada na execução.

Portanto, a alternativa correta é a C, visto que as afirmativas I e III estão corretas, enquanto a afirmativa II está incorreta.

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

Afirmativa II Há uma diferença entre constante e variável (tente associar como um antônimo do outro). Variável permite mudar por meio de reatribuirão, mas a constante não.

var declarations are globally scoped or function scoped while let and const are block scoped. var variables can be updated and re-declared within its scope; let variables can be updated but not re-declared; const variables can neither be updated nor re-declared. They are all hoisted to the top of their scope.

<script>

// Using const

const pi = 3.14159;

console.log("Value of pi:", pi);

// Using let

let count = 0;

console.log("Initial count:", count);

count = 5; // You can reassign a value to a variable declared with let

console.log("Updated count:", count);

// Using var (not recommended in modern JavaScript, use let or const instead)

var name = "John";

console.log("Name:", name);

name = "Alice"; // You can reassign a value to a variable declared with var

console.log("Updated name:", name);

// Block scope with let and var

function exampleScope() {

 if (true) {

   var varVariable = "I'm a var variable";

   let letVariable = "I'm a let variable";

   console.log("Inside if block - varVariable:", varVariable);

   console.log("Inside if block - letVariable:", letVariable);

 }

 // varVariable is accessible outside the if block

 console.log("Outside if block - varVariable:", varVariable);

 // letVariable is NOT accessible outside the if block

 // It has block scope and is limited to the if block

 // Uncommenting the next line will result in an error:

 // console.log("Outside if block - letVariable:", letVariable);

}

exampleScope();

</script>

https://stackoverflow.com/questions/76010295/when-should-you-use-var-let-or-const-in-javascript-code

Clique para visualizar este comentário

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