function abc(){
Will be raised.
abc = function (){
Will not be raised.
For example, if you did this:
abc(); function abc() { }
The code will run while abc is raised at the top of the scope.
If you, however, have done:
abc(); var abc = function() { }
abc declared, but does not matter and therefore cannot be used.
Regarding what, the programming style is best discussed.
http://www.sitepoint.com/back-to-basics-javascript-hoisting/
source share