The function statement declares a function. A declared function is “saved for later use”, and will be executed later, when it is invoked (called).
Function Declaration is also known as function Statement
This way of creating a function is called function Statement
This way of assigning function to variable is called function expression , here function acts as a value.
Now what is the difference between function Statement and function Expression ? (Think for a while )
Yes, you are right, it’s hoisting.
If I try to invoke both the functions , I will print the values in console
Suppose what if I call the functions even before creating it , let’s see
So, can you guess what’s the output here (think for a while)
Anonymous function :
A function without a name is called anonymous function . Anonymous functions are used as values , i.e. you can use it to assign it to some variables. In the above snippet the function which we assign to variable b is an anonymous function . One more point is if we don't assign it to some variable it throws an error .
Named Function Expression:
It’s same as function expression , but the difference is we give names to functions too.
There was an edge case here, what happens if we invoke xyz , can you make a guess, yes it throws an error.
so why it gives xyz not defined, because xyz is not created in the outer scope(global scope) but it is created as local variable , if we try to access xyz inside that function it will give the function as output, so its creating local scope to that function.
Difference Between Parameters and Arguments :
Most of the programmers use parameters and arguments as interchangeable terms, but these two are different .
In the above code snippet , param1 and param2 are knows as parameters and and b(1,2) here 1,2 are knows as arguments .
First Class Functions:
The ability of functions to be used as values and can be pass the function as an argument to another functions and can be returned from the functions is known as first class functions.
Don’t go away , I will give some examples
That’s why first class functions are also knows as “First class Citizens”