Orden de funciones en JavaScript
Mi pregunta se basa en el ejemplo de un libro "JavaScript orientado a objetos"(página 81 - Alcance léxico)
Entonces, entiendo de este ejemplo ...
function f1(){var a = 1; f2();}
function f2(){return a;}
f1();
... ese:
a no está definido
Pero, ¿cómo sabe f1 acerca de f2, que se define después de f1?
Este comportamiento plantea una pregunta:
¿Cómo funciona el intérprete de JavaScript?
Supongo que:
escanea el código y simplemente almacena las funciones, no asignadas a ninguna var, en un entorno globalInvoca una función de manera ad-hoc: cuando no existe tal función en un entorno global, se queja.