Объявление функций после их вызова в JavaScript
В JavaScript я обнаружил, что функция может быть объявлена после вызова, но только если она объявлена как функция, а не как переменная.
Это работает:
alerter('this is an alert');
function alerter(text) {
alert(text);
}
Но это не
alerter('this is an alert');
var alerter = function(text) {
alert(text);
}
Может кто-нибудь объяснить мне, почему они обрабатываются по-разному, и, возможно, дать краткое объяснение того, как JavaScript компилируется.