Jak to jest, że zmienna var nie nadpisuje poprzednich wartości wewnątrz pętli for. Wiem że tak się dzieje kiedy wewnątrz pętli znajdzie się funkcja, wtedy należy użyć let zamiast var lub opakować wszystko funkcją anonimową. Poniżej znajduje się prosty przykład:
for (var a=0; a<10; a++) {
console.log(a);
}
W konsoli wypisuje liczby od 0-9, ale moim rozumowaniem kiedy var jest zmienną o zasięgu funkcyjnym, zmienna a powinna nadpisać poprzednie wartości i wypisać do konsoli 9 razy tą samą liczbę czyli 9. Więc jak dokładnie działa ta pętla.