Hoisting

Is the order in which our program components are going to be loaded within the browser.

Cases

The first thing that the compiler does is set the memory for all the variables and declared functions that the compiler sees within the scope you have built

Curious behavior

Note

Function expressions are never hoisted, they are treated as assignments

Some hoisting interesting cases