Sobre as Ferramentas de desenvolvimento web, considere o cód...
Sobre as Ferramentas de desenvolvimento web, considere o código em JavaScript:

Indique a alternativa com o resultado CORRETO da execução do código.
Comentários
Veja os comentários dos nossos alunos
Para mudar o valor de 'outra' apenas dentro da function funcaoB(), deve-se definir a variável outra com let: 'let outra = Y' dentro da função. Assim, o 'return' seria Y, enquanto globalmente outra continuaria valendo X. Do jeito que está, houve alteração global de outra, e ela passou a valer 'Y'
✅Gabarito(B)
Ao definir uma variável sem "let", "var" ou "const", ela se tornará uma variável de escopo global. Assim, sendo acessada por qualquer método, terá seu valo alterado globalmente.
Segue uma outra questão semelhante Q1853849.
A questão trata sobre o conceito de escopo global e escopo de função em javascript.
Ao declarar variáveis fora de um bloco de função com a palavra reservada "var" ou "let", elas se tornam automaticamente globais, podendo ser acessadas dentro ou fora de qualquer bloco.
A funcaoA() todavia, declara var letra novamente. Dessa vez, essa var letra está dentro do escopo da função, e não altera o valor da variável letra global.
Já a funcaoB() acessa a variável global outra, já declarada globalmente, alterando seu valor. Assim as alterações feitas dentro do bloco da função ficam visíveis globalmente, por se tratar de uma variável global.
Vale ressaltar que ao atribuir um valor a uma variável ainda não declarada, como é feito na linha 2 com "outra = X", torna a variável global automaticamente.
Logo o gabarito correto é a letra B, XYXYY
Fonte: W3Schools
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo