Please note that **both function declarations looks similar BUT they are not**. The JavaScript interpreter can evaluate a function declaration as it is being parsed ([variable hoisting](https://howtodoinjava.com/typescript/javascript-variable-hoisting/)). On the other hand, the function expression is part of an assignment and will not be evaluated until the assignment has been completed.