Вы работаете только в одной области, цикл не создает ее, даже если вы используете ключевое слово var. Вы просто перезаписываете свою переменную i в своей текущей функциональной области, например, так:
for (var i = 0; i < 10; i++) {
for (var i = 5; i < 10; i++) {
console.log(i);
}
}
Просто напечатает 5,6,7,8,9.
Если вы хотите создать новую область видимости, вам придется делать это с использованием функций, как это обычно делается в javascript:
for (var i = 0; i < 10; i++) {
(function(i) {
for (var i = 5; i < 10; i++) {
console.log(i);
}
})(i)
}
Это напечатает 5,6,7,8,9 в собственных строках 10 раз.