The variable that a function statement defines is initialized before any statements in that function are run. (That's the one difference between function f(...) {...} and var f = function.... This allows for "pyramid style", where the function's implementation summarizes its behavior before giving the details (the nested functions).

Results

function request() {
    $.get('request', callback);
    function callback(x) {
        log('received "' + x + '"');
    }
}
 
request();