Веб-переглядач читає ваш HTML від початку до кінця і може виконувати його під час його читання та розбору на виконувані фрагменти (оголошення змінних, визначення функцій тощо). Але в будь-якій точці можна використовувати лише те, що було визначено в скрипті до цього моменту.
Це відрізняється від інших контекстувань програмування, які обробляють (компілюють) увесь ваш вихідний код, можливо, пов'язують його разом з будь-якими бібліотеками, необхідними для вирішення посилань та побудови виконуваного модуля, після чого починається виконання.
Ваш код може посилатися на названі об'єкти (змінні, інші функції тощо), які визначені далі, але ви не можете виконати посилальний код, поки всі фрагменти не будуть доступні.
Познайомившись з JavaScript, ви зрозумієте свою необхідність писати речі у відповідній послідовності.
Версія: Щоб підтвердити прийняту відповідь (вище), використовуйте Firebug, щоб перейти через розділ сценарію веб-сторінки. Ви побачите, що він пропускає з функції в функцію, відвідуючи лише перший рядок, перш ніж він фактично виконує будь-який код.