Oi José,
Entendi o que você quis dizer, que forEach()
pode ou não receber um elemento como parâmetro do callback. Realmente o método não deixa de funcionar caso não receba nenhum parâmetro, porém aqui vale pensarmos em duas coisas:
1) o JS normalmente não vai retornar erro se uma função não receber um parâmetro, caso este parâmetro não esteja sendo usado internamente como no caso do seu exemplo. Então o callback do forEach()
executa normalmente, o que não aconteceria caso passássemos console.log(elemento)
;
2) o JS tem diversos métodos prontos para arrays, então o ideal é sempre usarmos o método correto para o que precisamos.
Ou seja, no caso do forEach()
, o método serve para executar uma dada função uma vez para cada elemento do array (traduzido da documentação do MDN sobre o forEach()
). Então a função do forEach()
é executar um tipo de loop bem específico (sem nenhum retorno), e assim como outros métodos de array que utilizam callbacks, abstrair a lógica do for
de extrair cada elemento de um array, já pegando o elemento e passando para dentro do callback como parâmetro, inclusive já lidando automaticamente com o caso de índices vazios nos chamados sparse arrays.
Então dá pra concluir que sim, o código do exemplo que você passou vai executar sem problemas - especialmente porque o JS nesse caso não vai acusar nenhum tipo de erro -, mas podemos dizer que não é esse o uso pretendido para o método, que pode ser consultado na documentação do MDN.
Espero ter ajudado!
Bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!