Ask Your Question

Revision history [back]

In JavaScript, functions can be defined in two ways - using function declaration and function expression. When a function is defined as a function expression, the function is created as a value and is assigned to a variable. Therefore, it can be passed around as an argument to another function or returned as a value from a function.

Additionally, a function expression can be named or anonymous. If it is named, the name can be used inside the function to recursively call itself. If it is anonymous, it cannot be called recursively within itself.

The reason for referring to it as a function expression is to differentiate it from a function declaration, which is when a function is defined at the top level of a block of code with a function keyword followed by a name and a function body. In function declaration, the function is created before the execution of the code, while in function expression, the function is created and assigned to a variable during the code execution.