Ir para conteúdo
Faça parte da equipe! (2024) ×

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 scaler. 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!

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

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

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Cadastre-se Agora para publicar com Sua Conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

 Compartilhar

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • 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.