У меня есть следующий код, где я объявляю функцию и после нее переменную с тем же именем, что и функция:
function a(x) {
return x * 2;
}
var a;
alert(a);
Я ожидал, что это предупредит undefined
, но если я запустил его, в сообщении появится следующее:
функция a (x) { return x * 2
}
Если я присвою значение переменной (например, var a = 4
), предупреждение отобразит это значение (4
), но без этого изменения a
будет распознано как функция.
Почему это происходит?