Kontekst wykonania w JavaScript

Feb 25 2023
Zacznijmy od jednego przykładu, a następnie omówimy, jak ten kod działa za kulisami. Najpierw zadeklaruj zmienne x i y i zainicjuj je odpowiednimi vlaue 10 i 20.

Zacznijmy od jednego przykładu, a następnie omówimy, jak ten kod działa za kulisami.

var x = 10;
var y = 20;

function add(a,b){
  return a+b;
}

var result = add(x,y);

console.log(result) //30

Najpierw zadeklaruj zmienne x i y i zainicjuj je odpowiednimi vlaue 10 i 20.

Po drugie, zadeklaruj funkcję dodawania, która przyjmuje argument i zwraca sumę argumentów, tj. 10 + 20 = 30.

Po trzecie, wywołaj funkcję dodawania z argumentami jako wartościami zmiennych x i y i zapisz wynik w zmiennej wynik.

Na koniec wyjście zmiennej result za pomocą konsoli.

Podczas uruchamiania powyższego kodu JavaScript robi wiele rzeczy.

Kiedy silnik JavaScript wykonuje kod JavaScript w tym czasie, tworzy konteksty wykonania.

Każdy kontekst wykonania ma dwie fazy

  1. Faza tworzenia.
  2. Faza wykonania.

Kiedy silnik JavaScript wykonuje kod po raz pierwszy, tworzy globalny kontekst wykonania. Podczas tej fazy JavaScript wykonuje pewne zadania.

  1. Utwórz obiekt globalny tj. okno w przeglądarce internetowej lub global w Node.js.
  2. Utwórz ten obiekt (to słowo kluczowe) i powiąż go z obiektem globalnym. W przypadku przeglądarki internetowej to słowo kluczowe jest dołączone do obiektu okna, aw Node js to słowo kluczowe jest dołączone do obiektu globalnego.
  3. Skonfiguruj stertę pamięci do przechowywania odwołań do zmiennych i funkcji.
  4. Przechowuj deklaracje funkcji w stercie pamięci i zmienne w globalnym kontekście wykonania z wartościami początkowymi jako niezdefiniowanymi.
  1. Przechowuj zmienną x, y i wynik oraz deklarację funkcji add() w globalnym kontekście wykonania.
  2. Zainicjuj zmienne o niezdefiniowanej wartości, tj. x = niezdefiniowany, y = niezdefiniowany i wynik = niezdefiniowany.

Faza wykonania

Podczas fazy wykonania silnik JavaScript wykonuje kod linia po linii, przypisuje wartości do zmiennych i wykonuje wywołania funkcji.

Dla każdego wywołania funkcji silnik JavaScript tworzy nowe wywołanie wykonania funkcjonalnego.

Kontekst wykonywania funkcji jest podobny do globalnego kontekstu wykonywania. Ale zamiast tworzyć obiekt globalny, silnik JavaScript tworzy obiekt arguments, który jest odniesieniem do wszystkich parametrów funkcji.

W naszym przykładzie silnik JavaScript tworzy obiekt arguments, który odwołuje się do wszystkich parametrów przekazywanych do funkcji i ustawia tę wartość na obiekt globalny, w przypadku przeglądarki internetowej ta wartość jest dołączona do obiektu window, aw Node js ta wartość jest dołączona do globalnego obiekt, a także inicjuje parametr & b z niezdefiniowaną wartością.

Podczas fazy wykonywania kontekstu wykonania funkcji, silnik JavaScript przypisuje wartość 10 i 20 do parametru a & b i zwraca wynik (30) do globalnego kontekstu wykonania.

Aby śledzić wszystkie konteksty wykonywania, w tym globalny kontekst wykonywania i konteksty wykonywania funkcji, silnik JavaScript używa stosu wywołań.

Zostańmy w kontakcie

Mam nadzieję, że ten artykuł jest dla Ciebie wartościowy, do zobaczenia na następnym!