Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] sobre a estrutura for

Durante as aulas, foi utilizado o let para criar o contador e faze-lo receber o valor 0: for(let contador = 0; contador < listaDeTeclas.length; contador++)...

Gostaria de saber porque ao criar o **indice** na estrutura for desse exercício, não foi utilizado let:
for(**indice** = 0; indice < listaDeTeclas.length; indice++)...

Quando se trata de uma constante, posso iniciar pelo nome da constante direto? Exemplo:
for(**constante** = 0; constante...)

Desde já, agradeço a atenção.
1 resposta
solução!

Olá, tudo bem?

Tem algumas particularidades ao utilizar o for. Você não precisa passar a inicialização do loop, pode fazer fora dele, por exemplo:

var i = 0;
for (; i < 9; i++) {
    console.log(i);
    // código omitido
}

Você também não precisa passar a condição, mas deve garantir que haja uma condição de parada para que não entre em loop infinito.

for (var i = 0;; i++) {
   console.log(i);
   if (i > 3) break;
   // código omitido
}

No caso do exercício, a variável não foi declarada com var, let, ou const. Nestes casos, quando você não deixa explícito o tipo de declaração, as variáveis são declaradas com escopo global, como as variáveis declaradas com var.

Isso pode trazer vários problemas pro seu código, pois caso tenha uma outra variável com o mesmo nome em outro lugar você irá ter grandes problemas. Por isso é recomendado sempre criar inicializar variáveis com declaração adequada.

Variáveis constantes, ou seja, as declaradas com const, não devem ser usadas como inicialização em laços de repetição, pois elas não podem ser atualizadas nem redeclaradas. Por isso usa-se mais o let nestes casos.

Se quiser saber mais sobre o for, vou deixar aqui o link da documentação.

Se você deseja entender mais sobre os tipos de declaração de variáveis, recomendo a leitura do artigo abaixo:

Abraços