Analise o código em linguagem de programação Javascript abai...

Próximas questões
Com base no mesmo assunto
Q2172187 Programação
Analise o código em linguagem de programação Javascript abaixo e assinale a alternativa com as saídas deste código na sequência correta.
var x = 20; function multiplicar() {    var x = 5;    x *= 2;    console.log(x); }
console.log(x); multiplicar();
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: B - 20, 10

Para compreender essa questão, é essencial ter um bom entendimento sobre escopo de variáveis em JavaScript. O escopo pode ser definido como o contexto no qual as variáveis existem e podem ser acessadas. No JavaScript existem dois tipos principais de escopo: global e local (ou de função).

No código fornecido, a variável x é declarada pela primeira vez no escopo global com o valor 20. Isso significa que qualquer parte do código que não esteja dentro de uma função pode acessar e modificar essa variável.

Na função multiplicar(), uma nova variável x é declarada dentro do escopo local da função, significando que esta variável só pode ser acessada e alterada dentro desta função. A linha var x = 5; está criando essa variável local que é independente da variável global de mesmo nome.

A seguir, a variável local x é modificada pela operação de multiplicação por 2 (x *= 2;), o que resulta no valor 10 (5 * 2). O console.log(x) dentro da função irá imprimir esse valor 10 no console, representando a variável local x.

Quando a função termina sua execução, o escopo local também termina, e a variável local x deixa de existir. A próxima linha executada após a chamada da função console.log(x); imprime o valor da variável x no escopo global, que ainda é 20, pois a variável global x não foi modificada pela função multiplicar().

Portanto, a saída do código será primeiro 20 (variável global) e depois 10 (variável local dentro da função). Assim, a alternativa B - 20, 10 está correta.

Clique para visualizar este gabarito

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