Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Const fora do IF

Olá pessoas, esta aula foi de refatoramento do código anterior certo, mesmo refatorando ainda fiquei com uma dúvida:

  • Por que ele não declarou as const's antes do "IF" dentro da função?

Na minha mente isso se torna mais claro, vejam o exemplo abaixo que fiz em meu código e me corrijam se eu estiver errado por favor!

const alunos = ["João", "Juliana", "Ana", "Caio"];
const medias = [10, 8, 7.5, 9];

const listaMatrizAlunosMedias = [alunos, medias]; // matriz, lista de duas dimensões

function exibeNomeNota(aluno) {
  // const listaAlunos = matrizAlunosMedia[0];
  // const listaMedia = matrizAlunosMedia[1];

  const [listaAlunos, listaMedias] = listaMatrizAlunosMedias;
  // esta const substitui as const's das linhas  7 e 8;

  const nomeAluno = listaAlunos.indexOf(aluno);
  const mediaAluno = listaMedias[nomeAluno];

  if (listaMatrizAlunosMedias[0].includes(aluno)) {
    console.log(`O nome do Aluno é ${aluno}, e sua média foi ${mediaAluno}.`);
  } else {
    console.log(
      `Aluno(a) de nome ${aluno}, não foi encontrado na lista de alunos.`
    );
  }
}
exibeNomeNota("João");
exibeNomeNota("Juliana");
exibeNomeNota(alunos[2]);

// para executar no navegador
alert("Olá, bem vindo a pesquisa de alunos!");
const pesquisaAluno = prompt("Qual o nome do aluno para pesquisa?");
exibeNomeNota(pesquisaAluno);

Pra mim, fez mais sentido eu declarar dentro da função, mas antes do IF, lendo de cima pra baixo, talvez alguém também me entenda kkk

Anteriormente eu havia declarado fora da função, funciona também mas creio que não se faz necessário pois código será lido mesmo antes de ser executada a chamada, então, será por isso que ele declara também dentro do IF, para que seja lido somente se nome do aluno estiver dentro da lista ???

Bom é isso!

2 respostas
solução!

Olá, Roberto! Tudo bem?

A decisão de onde declarar as constantes depende muito do contexto e do que faz sentido para você como desenvolvedor.

No exemplo que você deu, você está declarando as constantes listaAlunos e listaMedias antes do if. Isso faz sentido, pois você está basicamente dizendo: "Independentemente do resultado do if, eu quero ter essas duas constantes disponíveis".

No exemplo da aula, as constantes alunos e medias são declaradas dentro do bloco if. Isso significa que elas só serão criadas e atribuídas se a condição do if for verdadeira. Isso pode ser útil se, por exemplo, a criação dessas constantes for um processo que consome muitos recursos e você só quiser fazê-lo se realmente necessário.

No seu caso, como a atribuição das constantes não é um processo pesado (você está apenas referenciando partes de uma matriz existente), não há realmente uma diferença significativa em termos de desempenho entre os dois métodos. É mais uma questão de legibilidade e preferência pessoal.

Portanto, tanto a sua abordagem quanto a da aula estão corretas. A escolha entre uma e outra depende do que faz mais sentido para você e para as pessoas que possam vir a trabalhar no seu código no futuro.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Beleza Armando, obrigado pelo retorno. Abraço.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software