Ir para conteúdo
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

Preciso de ajuda para tentar projetar um loop.


XavierD
 Compartilhar

Posts Recomendados

Sou novo em JavaScript e estou trabalhando em um projeto que exige definir e utilizar variáveis. Tenho lido sobre var, let e const e pensei que sabia como eles funcionavam, mas me deparei com um problema que não consigo resolver.

Estou tentando escrever um loop que itera através de uma matriz de números inteiros e controla o total desses números em uma variável semelhante a este exemplo dado no artigo

É necessário se cadastrar para acessar o conteúdo.
. Mas estou recebendo um resultado inesperado. Estou usando o seguinte código:

É necessário se cadastrar para acessar o conteúdo.

Antecipei esse código para somar os números do array myNumbers e registrar o resultado, mas estou recebendo o seguinte erro no console do meu navegador:

É necessário se cadastrar para acessar o conteúdo.

Estou perplexo porque declarei a variável sum com let, então ela deveria estar disponível dentro do loop, certo? O que estou fazendo incorretamente e como posso corrigir esse erro? Qualquer sugestão seria muito apreciada. Muito obrigado!

  • Curtir 6
Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...

O trecho de código fornecido parece estar correto, e a execução no navegador não apresentou erros no console. No entanto, é importante destacar que a função calculateSum não retorna explicitamente nenhum valor, limitando seu acesso fora do escopo da função. Além disso, a mensagem de erro "Uncaught ReferenceError: Cannot access 'sum' before initialization" geralmente ocorre quando uma variável é acessada antes de ser inicializada.

 

No código fornecido:

Spoiler
É necessário se cadastrar para acessar o conteúdo.

 

A variável sum está declarada dentro do escopo da função, tornando-a inacessível externamente(escopo global). Se você deseja utilizar o valor de sum fora da função, pode movê-la para fora do escopo da função, como a seguir:

Spoiler
É necessário se cadastrar para acessar o conteúdo.

 

Dessa forma, a variável sum fica acessível globalmente, e você pode utilizá-la fora da função.

 

Outra forma de resolver é fazendo a função calculateSum retornar o valor da variável sum, que seria a forma mais correta, da seguinte forma:

Spoiler
É necessário se cadastrar para acessar o conteúdo.

 

 

Espero ter lhe ajuda de alguma forma e aconselho fortemente você buscar conhecimento sobre como funciona o escopo da variável let

Editado por matopormata
  • Curtir 2

Meu coração ainda é humano, mas o meu corpo já pertence a um Ghoul.

WCnt3HR.pngABHNbkI.png

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.