What the heck is the event loop anyway?
The event loops job is to look at the stack and look at the task queue, If the stack is empty it takes the first thing on the queue and pushes it to the stack to be executed. Now a setTimeout set to ‘0’ allows you to clear the stack the same way as if it had time by allowing the stack to finish before pushing the task queued item to the end. This help illustrates that setTimeout is not a guaranteed time of execution. It is a MINIMUM time of execution.