¿Qué sucede cuando el nombre de la variable de JavaScript y el nombre de la función son iguales?
Tengo el siguiente código, donde declaro una función y, después, una variable con el mismo nombre que la función:
function a(x) {
return x * 2;
}
var a;
alert(a);
Esperaba que esto alertaraundefined
, pero si lo ejecuto, la alerta mostrará lo siguiente:
función a (x) {
volver x * 2
}
Si asigno un valor a la variable (comovar a = 4
), la alerta mostrará ese valor (4
), pero sin este cambioa
será reconocido como una función.
¿Por qué está pasando esto?