links: JS MOC
Function Declaration vs Expression
Inputs
JS Functions can receive parameters from zero to upward
function greeting(myName) {
console.log(`Hello, ${ myName }!`);
}
greeting("Subramanya")
Return
JS Functions can return values using return keyword
function greeting(myName) {
return `Hello, ${ myName }!`;
}
var msg = greeting("Subramanya")
console.log(msg) // Hello Subramanya
You can only return a single value
Function Declaration
foo() // works
function foo() {
// ...
}
foo() // works
Because of function hoisting, the function declared this way can be called both after and before declaration.
The association between the identifier foo and function value happens during compile phase of the code
Function Expression
-
Named Function Expression
var foo = function bar() { // ... } -
Anonymous Function Expression
var foo = function(){ // ... }
foo() can be called only after creation
- the above function is not associated with it’s identifier
foountil that statement during runtime
My recommendation: Use Function Expression, because it makes it clear that foo is a variable containing a function value
tags: javascript