Considere o seguinte código Javascript: <script> ...

Próximas questões
Com base no mesmo assunto
Ano: 2018 Banca: FEPESE Órgão: CELESC Prova: FEPESE - 2018 - CELESC - Analista de Sistemas |
Q1248103 Programação

Considere o seguinte código Javascript:


<script>
var abc = “Valor”;
var abc;
</script>


O conteúdo da variável abc ao final da execução desse script será:

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Resposta correta: A - O texto “Valor”

A questão aborda o conceito de hoisting no contexto da linguagem de programação JavaScript. Hoisting é um comportamento do JavaScript que move as declarações de variáveis e funções para o topo do seu contexto de execução antes da fase de execução do código. Isso significa que variáveis podem ser usadas antes mesmo de serem declaradas no código.

Neste caso específico, temos a declaração de uma variável abc com a atribuição do valor "Valor" seguida de uma segunda declaração da mesma variável sem atribuição de valor. Devido ao hoisting, o JavaScript trata essas declarações como se a variável abc fosse declarada uma única vez no topo do contexto de execução, e então o valor "Valor" é atribuído a ela. Assim, a segunda declaração da variável não tem nenhum efeito sobre o valor já atribuído, pois as redeclarações de variáveis com var são ignoradas.

Para que você compreenda melhor, o que o JavaScript "vê" depois do hoisting é algo semelhante a:

<script>
  var abc;
  abc = “Valor”;
  // var abc; // Esta linha é ignorada devido à redeclaração.
</script>

Portanto, ao final da execução desse script, o conteúdo da variável abc será o texto "Valor", o que torna a alternativa A a resposta correta. As outras opções são incorretas porque undefined seria o valor de uma variável declarada mas não inicializada, null é um valor que indica a ausência intencional de qualquer valor de objeto, void é um operador utilizado para retornar undefined de expressões, e 0 é um valor numérico, nenhum desses é aplicável ao cenário apresentado.

Clique para visualizar este gabarito

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