Loading lesson path
Function definition is a general term for defining a function. Function declaration is one specific way to define a function.
// Function Declaration function myFunction(x, y) {
return x * y;
}
// Function Expression (Named)
const myFunction = function name(x, y) {
return x * y;
};
// Function Expression (Anonymous)
const myFunction = function (x, y) {
return x * y;
};
// Arrow Function const myFunction = (x, y) => x * y;
// Function Constructor const myFunction = new Function("x", "y", "return x * y");
// Object Method const obj = {
myFunction(x, y) {
return x * y;
},
};Earlier in this tutorial, you learned that functions are declared with the following syntax: function functionName ( parameters
) {// code to be executed
}A function declaration uses the function keyword and a function name.
function myFunction(a, b) {return a * b}function myFunction(a, b) {
return a * b;
}
Declared functions are not executed immediately. They are "saved for later use", and will be executed later, when they are invoked (called upon).You can call a function before or after it is declared in the code.
let x = myFunction(4, 3);
function myFunction(a, b) {
return a * b;
}function myFunction(a, b) {
return a * b;
}
let x = myFunction(4, 3);A function expression stores a function inside a variable. The function can be anonymous (without a name). Function expressions are executed only when the code reaches them.
const x = function (a, b) {return a * b};After a function expression has been stored in a variable, the variable can be used as a function:
const x = function (a, b) {return a * b};
let z = x(4, 3);Function declarations are hoisted to the top of their scope. Function expressions are not hoisted in the same way. Function declarations can be called before they are defined. Function expressions can not be called before they are defined.
Function declarations can be called before they are defined:
const sum = add(2, 3); // Will work function add(a, b) {return a + b;}Function expressions can not be called before they are defined:
const sum = add(2, 3); // ⛔ Will generate error const add = function (a, b) {return a + b;};A statement starting with the function keyword, followed by a required name.
A part of an expression or assignment, and can be anonymous (without a name).
The function is moved to the top of its scope before code execution, allowing you to call it from anywhere within that code scope, even before its definition.