When it comes to hoisting, function declarations and function expressions are treated differently. Both are processed during the creation phase, but a function declaration is initialized with the function itself, whereas a function expression's variable binding is not initialized with the function until the assignment is executed.
The world is not going to pause and say "It's time to take your break. You deserved it."