Last active
December 11, 2015 20:29
-
-
Save jackfranklin/4655886 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// what are the key differences between: | |
var foo = function() { | |
alert("Hello World"); | |
}; | |
// and | |
function foo() { | |
alert("Hello World"); | |
} |
@jackfranklin or even var foo = function foo() {}
?
foo is defined at parse time so can be used and var foo is just an alias at run time (i used foo but could be "bar") I dont use it often was just an example of how to get best of both worlds.
Try running:
foo(); // runs the parse time code
function foo () {alert('hello')};
var foo = foo;
foo(); // runs the runtime code.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Just to clarify my first statement:
Produces '1' – which is logical but totally unintuitive because it's not always clear that function declarations are hoisted. Rewritten it makes much more sense:
Resulting in:
I worded it badly, but I'm saying it's not as clear what's going on.