Как работает стек js? и var и let

Почему данная функция выводит всё время 10?

for(var i=0;i<10;i++){
    setTimeout(function (){
        console.log(i);
    });
}

А если исправить на let - возвращает от 1 до 10, в чём отличие? Если в setTimeout ничего не указано, через сколько она вызывается?

for(let i=0;i<10;i++){
    setTimeout(function (){
        console.log(i);
    });
}

Ответы (0 шт):