What is an execution context in JavaScript?
An execution context is the environment where a piece of code runs. It holds the variable environment (declared vars/functions), the scope chain (which outer scopes are visible), and the value of 'this'. JS creates a new context for the global code, every function call, and every eval invocation.