Analise o código em linguagem de programação Javascript abai...
var x = 20; function multiplicar() { var x = 5; x *= 2; console.log(x); }
console.log(x); multiplicar();
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