A Function Expression is when you create a function and assign it to a variable. Unlike a Function Declaration, the function is treated as a value (like a string or a number) rather than a standalone statement.
function keyword: The function keyword can be used to define a function inside an expression.
A function expression is very similar to and has almost the same syntax as, a function declaration.
Can be Anonymous or Named: The main difference between a function expression and a function declaration is the function name, which can be omitted in function expressions to create anonymous functions.
Hoisting: You cannot call a function expression before you define it. The variable is hoisted, but the function value is not assigned until the code runs.