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