Почему моя глобальная переменная затеняется перед локальным объявлением?

x = 1; 
alert(x); 
var y = function() { 
    alert(x); 
    var x = 2; 
    alert(x); 
} 
y(); 

Результат 3 предупреждений:1, undefined, 2 (Chrome 25)

Мой вопрос: почему второе предупреждение не определено? Почему не 1? Не существует ли глобальной переменной x?

Ответы на вопрос(3)

Ваш ответ на вопрос