for(var j = 0; j < 3; j++) {
console.log('j1 %s', j)
for(var j = 0; j < 3; j++) {
console.log('j2 %s', j)
}
}
результат
j1 0
j2 0
j2 1
j2 2
В общем то я уже давно знаю что javascript так не умеет. И когда встретил неожиданное поведение, наверное и минуты не потратил... но как то осадочек.