Boa noite Gabriela, vou tentar me explicar; o JavaScript por natureza própria e a diferença dos outros linguajes de programação, utiliza o Hoisting que é a superposição das coisas ou alcance fora dos blocos ou scopos (as chaves { } ), ou seja, não respeitava os scopos "{ }" nas declarações de variáveis com mesmo nome que tinhan num inicio as variaveis de tipo "var", esse erro corrigiram ao criar-se as variáveis de tipo "let" e "const" que sim, respeitam os scopos.
Por tanto, é uma boa prática utilizar "let" no lugar de "var".