Closure is when a function "remembers" its lexical scope even when the function is executed outside that lexical scope. (IMO: just a stupid function returning another partially applied function).
Variable and function declarations are put into memory during the compile phase, but stays exactly where you typed it in your coding. There is no physically lifting to the top of the file at all.