var keepGoing = true;
while (keepGoing) {
var value = Math.random();
if (value > 0.5) {
keepGoing = false;
}
}
Происходит ли повторное объявление переменной value — ведь мы знаем, что var его допускает? Нет. Так как переменная var не рассматривается как объявление с блоковой областью видимости (см. главу 6), она присоединяется к глобальной области видимости. Таким образом, здесь существует только одна переменная value в одной области видимости с keepGoing (глобальная область видимости в данном случае). Никакого повторного объявления здесь тоже нет!