The blog post I'm hoping to help improve is The Ultimate Guide to Hoisting, Scopes, and Closures in JavaScript.
Just a quick note, the YouTube video for this post links to The Evolution of Async JavaScript: From Callbacks, to Promises, to Async/Await when it should be linked here.
This post is absolutely fantastic. Execution context is critical to understanding so much about JavaScript, and approaching topics such as hoisting and closures from this perspective has made me a much better programmer.
However, JavaScript's "scope" doesn't fit well with execution context because its scope is lexical, not dynamic.