JavaScript: kontekst wykonania (Aze)
Gdy kody, które piszemy, działają, w tle działają procesy, których nie widzimy. Kiedy silnik JavaScript odczytuje i wykonuje kody, robi to w 2 krokach. Ten ogólny proces, zwany kontekstem wykonawczym, ma 2 etapy , jak wspomnieliśmy jako faza tworzenia i faza wykonania .
W pierwszym etapie, zwanym fazą tworzenia, silnik JS wykonuje swego rodzaju zapoznanie się z kodem i prace przygotowawcze. Tworzy kontekst, przydziela pamięć do przechowywania zmiennych i funkcji. W kolejnym etapie, jakim jest faza wykonania , silnik JS asymiluje wymienione przez nas wartości ze znanymi mu zmiennymi i wywołuje funkcje.
Możemy to porównać do przygotowywania pewnego rodzaju jedzenia. Od początku dowiadujemy się, jakie zapasy są potrzebne do jedzenia, które będziemy przygotowywać (faza tworzenia).
Następnie ustalamy ilość zapasów i rozpoczynamy akcję przygotowania jedzenia (faza wykonania).
Kiedy kod jest wykonywany po raz pierwszy, najpierw tworzony jest globalny kontekst wykonania i wykonywane są wspomniane fazy. Następnie, jeśli funkcje istnieją i są wywoływane, tworzone są konteksty wykonywania funkcji i wykonywane są obie fazy.
Praktycznie możemy to wszystko zobaczyć za pomocą małego kodu.
- Gdy ten kod zostanie odczytany przez silnik, najpierw zostanie utworzony kontekst globalny .
2. Jeśli zauważyłeś, nic nie zostało zrobione ze zmienną tech w funkcji getTechStack . Dzieje się tak, ponieważ zmienna znajduje się wewnątrz funkcji getTechStack . Po wywołaniu tej funkcji, jak w linii 9, zostanie utworzony nowy kontekst funkcjonalny i ponownie wykonane zostaną 2 fazy w tym kontekście. Tylko wtedy zmienna techniczna będzie traktowana jak każda inna zmienna.
W przeciwieństwie do kontekstu globalnego, obiekt globalny w kontekście funkcjonalnym będzie równy obiektowi arguments , który odwołuje się do parametrów funkcji.
Tak więc za każdym razem, gdy wywołana zostanie funkcja inna niż kontekst globalny, zostanie utworzony nowy kontekst i ta sama procedura zostanie powtórzona.
Dziękuję za przeczytanie. :)
Inne tematy:

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































