Что такое контекст выполнения функции JavaScript?

Доброго времени суток, скоро будет тест по js, никак не могу освоить тему контекст выполнения, что это за контекст такой, касается ли он как то областей видимости, или это разные вещи? В общем был бы благодарен если бы кто то прояснил эту тему для меня)

Тут всё не так сложно, по сути, контекст выполнения это информация которая соответствует именно текущему запуску функции, эта информация включает в себя локальные переменные, как пример можно взять даже обычную функцию, когда мы вызываем функцию всё передается в стек, и каждый раз при вызове функции и при передаче туда разных значений будет передан разный контекст, вообще, можешь глянуть информацию про this, есть вообще три типа кода в js, код глобальный, вне всяких функций, код функций, который выполняется в теле функции и eval код который выполняется внутри функции eval().

По сути каждый вызов функции приводит к созданию контекста выполнения, и каждый раз когда контекст создается то добавляется он в верхнюю часть стека.