Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FUNDATEC 2023

ProgramaçãoLinguagens de programação
Código
qq897150
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2023
Nível
Superior
Cargo
ANC - Analista em Computação - Ênfase em Desenvolvimento Front-End
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();
  1. A10, 20
  2. B20, 10
  3. C10, 10
  4. D20, 20
  5. E20, Undefined
Revelar gabarito e comentário

GabaritoB — 20, 10

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

JavaScript – Escopo de variáveis

Gabarito: letra B. O código exibe primeiro 20 (valor da variável global x) e depois 10 (valor da variável local x dentro da função multiplicar). A palavra-chave var declara uma nova variável local dentro da função, que sombreia (shadow) a variável global – portanto, alterações na local não afetam a global.

Análise do código

  • var x = 20;: declara uma variável global x com valor 20.

  • A função multiplicar() declara uma nova variável local x (também com var) e a inicializa com 5. x *= 2 a torna 10. O console.log(x) dentro da função exibe 10.

  • O console.log(x) fora da função exibe o valor da variável global, que permanece 20.

Portanto, a sequência de saída é:

  1. 20 (primeiro console.log)

  2. 10 (segundo console.log, chamada da função)

Alternativas

Alternativa A – ❌ Incorreta

Saída: 10, 20. Troca a ordem: mostra o valor local antes do global. O console.log externo é executado antes da função, logo exibe 20 primeiro.

Alternativa B – ✅ Correta ⟵ GABARITO

Saída: 20, 10. Sequência exata: global 20, depois local 10.

Alternativa C – ❌ Incorreta

Saída: 10, 10. Indica que ambos os console.log exibem 10. Isso ocorreria se a função alterasse a variável global, mas a declaração var local cria uma variável separada.

Alternativa D – ❌ Incorreta

Saída: 20, 20. Sugere que a multiplicação x *= 2 não surtiu efeito ou que a função não foi executada. Na verdade, a função é chamada multiplicar() e exibe o valor local 10.

Alternativa E – ❌ Incorreta

Saída: 20, Undefined. Imaginaria que a variável local x não foi inicializada ou sofreu hoisting sem valor. Contudo, var x = 5; inicializa com 5; depois x *= 2 atribui 10. console.log(x) exibe 10.

PEGA ESSA DICA!

Em JavaScript, var tem escopo de função (function scope). Dentro da função, uma nova variável com o mesmo nome de uma global sombreia a global. Para modificar a variável global, deve-se omitir a declaração var, let ou const (ex.: x = 5;), ou referenciá-la como window.x no navegador. Lembre-se: var dentro de função cria uma variável local, não altera a externa.

Link permanente: /questoes/qq897150