Another good resource for understanding JS execution context: https://tylermcginnis.com/ultimate-guide-to-execution-contex...
You can use its JavaScript Visualizer to step through the context creation (ES5, doesn't work too well with ES6): https://tylermcginnis.com/javascript-visualizer/