JavaScript Execution and the Event Loop
JavaScript is a single-threaded language, meaning it lines up all of its operations in a single thread and executes them one at a time. Many other languages are multi-threaded, that is, they are able to execute more than one thread of operations at a time. There are pros and cons to each method of execution, mostly revolving around efficiency versus complexity, but we won't look at these in-depth here. As we'll see in a moment, JavaScript's call stack processes operations one at a time, on a last in, first out (LIFO) basis.
LIFO describes a process of adding and removing elements from a data structure – in this case, from a stack. As the name suggests, the last thing that's added is the first thing taken away – much like stacking books on a desk.
The JavaScript Runtime
A runtime environment is an application that allows the software to be run on a system. It's the bridge between the software being...