Как работает контекст исключений и стек выполнения в Javascript?

Я хотел бы спросить немного странную вещь, которой я занимаюсь в Javascript немного дольше и от которой, я полагаю, многие извлекут выгоду из этого поста. Итак, для начала.

  1. Что и как создается / работает контекст выполнения и стек выполнения?
  2. Что такое объект переменной и цепочка областей видимости
  3. Почему необходимо знать, как работает контекст выполнения и
  4. Какова их цель?
  5. И наконец, должны ли мы быть более осторожными в каком-то конкретном аспекте, чтобы все вышеперечисленное наконец оказало хорошее влияние на общую производительность нашего исходного кода?

1-й пример: все хорошо здесь

const x = [1,2,3,4,5];

function firstFn(...args){
   //something here 
}
firstFn(1,2);

Здесь и x, и функция будут добавлены в глобальный контекст выполнения, поскольку оба они были объявлены и вызваны в глобальной области. И поскольку функции создают свой собственный контекст выполнения, они будут добавлены в глобальный контекст выполнения, поэтому будет создан глобальный стек выполнения!

Но взгляните на второй пример, и именно здесь я борюсь.

2-й пример: вызван или объявлен?

const x = [1,2,3,4,5];
function firstFn(...args){
  //something here
  secondFn(1,2)
}
firstFn(1,2)

function secondFn(...args){
    //something here
}

Хорошо, снова и x, и firstFn() принадлежат глобальному контексту выполнения, но как насчет secondFn(). Как Javascript определяет, где он будет размещен? Где это было объявлено или где оно было вызвано?

Вопрос: Если это определяется временем вызова функции, к чему бы это привело? Новый глобальный контекст выполнения для secondFn () или просто увеличьте текущий стек выполнения. Другими словами, возможно ли создание нового стека выполнения внутри другого локального стека?

Все объекты

Говорят, что все в Javascript это объекты. Я не уверен, что на самом деле означает это изречение, но если это правда, Вопрос: должен ли конструктор Object также создавать свой собственный контекст выполнения локали, поскольку он создается с использованием нового ключевого слова?

Наконец, все ли эти темы с контекстом Javascript связаны с конечной производительностью всей веб-страницы?

Спасибо, и я надеюсь, что я не перегружен этой темой!

0 ответов

Другие вопросы по тегам