Сегодня я был полностью удивлен, когда увидел, что глобальная переменная имеет значение undefined в определенном случае.
Пример:
var value = 10;
function test() {
    //A
    console.log(value);
    var value = 20;
    //B
    console.log(value);
}
test();
Дает вывод как
undefined
20
Вот почему механизм JavaScript рассматривает глобальное значение как undefined. Я знаю, что JavaScript является интерпретированным языком. Как он может рассматривать переменные в функции?
Является ли это ошибкой от механизма JavaScript?