Der Browser liest Ihren HTML-Code von Anfang bis Ende und kann ihn ausführen, während er gelesen und in ausführbare Blöcke (Variablendeklarationen, Funktionsdefinitionen usw.) analysiert wird. Er kann jedoch zu jedem Zeitpunkt nur das verwenden, was vor diesem Punkt im Skript definiert wurde.
Dies unterscheidet sich von anderen Programmierkontexten, die Ihren gesamten Quellcode verarbeiten (kompilieren), ihn möglicherweise mit Bibliotheken verknüpfen, die Sie zum Auflösen von Referenzen benötigen, und ein ausführbares Modul erstellen, an dem die Ausführung beginnt.
Ihr Code kann auf benannte Objekte (Variablen, andere Funktionen usw.) verweisen, die weiter unten definiert sind. Sie können jedoch keinen Referenzcode ausführen, bis alle Teile verfügbar sind.
Wenn Sie sich mit JavaScript vertraut machen, werden Sie sich genau bewusst, dass Sie die Dinge in der richtigen Reihenfolge schreiben müssen.
Revision: Um die akzeptierte Antwort (oben) zu bestätigen, verwenden Sie Firebug, um den Skriptabschnitt einer Webseite zu durchlaufen. Sie werden sehen, dass es von Funktion zu Funktion springt und nur die erste Zeile besucht, bevor es tatsächlich Code ausführt.