The Global Environment and the Global Object
Whenever a code is run in JS, it is run inside an Execution context (a wrapper which wraps your code with the code other people wrote i.e. for parsing, verifying, executing your code etc).
The Base execution context is Global Execution Context (recall your code is wrapped inside an Execution context). JS engine creates 2 key things for you – Global Object (a collection of name-value pairs) and a special variable this.