Почему я могу вызвать функцию раньше чем она была создана?
Функции, объявленные через Function Declaration, отличаются от Function Expression тем, что интерпретатор создаёт их при входе в область видимости (в начале выполнения скрипта), так что они работают до объявления.
http://learn.javascript.ru/javascript-specials#fun...
потому что есть два способа обьявления функции
в твоем случае неважно где она обьявляется