Unikanie w JavaScript | Wyjaśnione

Unikanie w JavaScript | Wyjaśnione
Gdy silnik JavaScript wykonuje program, tworzy nowy kontekst wykonania Globalny kontekst wykonania" albo "Domyślny kontekst". Być może wiesz, że JavaScript jest językiem jednokierunkowym, więc pozwala tylko na tworzenie jednego globalnego kontekstu wykonania na wykonanie kodu.

W JavaScript są dwie fazy z Globalny kontekst wykonania:

  • kreacja
  • Wykonanie

W fazie tworzenia deklaracje związane ze zmiennymi i funkcjami są przesunięte na szczyt zakresu, znanego jako „Podnoszenie". Jest również uważane za domyślne zachowanie JavaScript.

Ten post wyjaśnia podnoszenie w JavaScript wraz z odpowiednimi przykładami. A więc zacznijmy!

Zmienne podnoszenie w JavaScript

Silnik JavaScript automatycznie przesuwa deklaracje zmienne na górę programu lub skryptu. Ten proces jest znany jako „Zmienne podnoszenie".

Przykład: Zmienne podnoszenie w JavaScript

W poniższym przykładzie zadeklarowaliśmy zmienną o nazwie „numer”I zainicjował jego wartość„4„, Ale wcześniej odwołujemy się do„numer„Zmienna przez„konsola.dziennik()" metoda:

konsola.log (liczba);
var liczba = 4;

W tym przypadku „numer„Deklaracja zmienna jest automatycznie przenoszona na górę skryptu. To jest powód, dla którego wykonanie dostarczonego nie napotkało żadnego błędu:

Pod względem składni kod w fazie wykonania wygląda tak:

numer var;
konsola.log (liczba);
liczba = 5;

Więc co się stało w tle? Silnik JavaScript przydzielał pamięć do „numer„Zmienna podczas globalnej fazy tworzenia kontekstu wykonywania, a następnie ustal jej wartości jako„nieokreślony".

Niech podnoszenie słów kluczowych w JavaScript

W JavaScript zmienne zdefiniowane za pomocą „pozwalać„Słowo kluczowe są podnoszone na górze skryptu, ale silnik ich nie inicjuje. Blok kodu wie o zdefiniowanej zmiennej; Nie można go jednak wykorzystać, dopóki nie ogłosimy określonej zmiennej.

Przykład: Niech podnoszenie słów kluczowych w JavaScript

Zadeklarujemy to samo „numer„Zmienna za pomocą„pozwalać”Słowo kluczowe:

liczba = 6;
Niech liczba = 5;

Dany kod wygeneruje „ReferenceStror" że "numer„Zmienna nie jest zdefiniowana:

Spotkanie „ReferenceStror”Oznacza również, że„numer„Zmienna jest umieszczana w pamięci sterty, ale nie jest jeszcze inicjowana.

Postaramy się uzyskać dostęp do zmiennej ”alfa„To nie istnieje w pamięci. W takim przypadku wyjście pokaże kolejne „ReferenceStror" że "alfa„Zmienna nie jest zdefiniowana:

konsola.log (alfa);
Niech liczba = 5;

Wyjście

Teraz sprawdźmy, w jaki sposób silnik JavaScript obsługuje podnoszenie funkcji.

Funkcja podniesienia w JavaScript

Deklaracje funkcji są również przesunięte na górę skryptu przez silnik JavaScript. Podobnie jak zmienne, JavaScript oferuje funkcjonalność deklaracji funkcji wciągnika.

Przykład: Podnoszenie funkcji w JavaScript

W poniższym przykładzie „dodać()„Funkcja jest wywoływana przed dodaniem jej definicji:

Niech a = 45,
B = 23;
Niech sum = dodaj (a, b);
konsola.log (suma);
funkcja dodaj (x, y)
zwrócić x + y;

Jednak program nadal wyprowadza wartość zwróconą przez „dodać()”Funkcja:

Po wykonaniu podanego przykładu silnik JavaScript przydziela pamięć do deklaracji „dodać()”Funkcja. Mówiąc dokładniej, JavaScript „Obiekt”Jest tworzony zgodnie z typem„dodać()”Typ funkcji, a także dodaje„Odniesienie do funkcji" o imieniu "dodać,”, Który wskazuje na utworzony obiekt.

Tak więc technicznie, w silniku JavaScript, powyższy przykład jest wykonywany w następujący sposób:

funkcja dodaj (x, y)
zwrócić x + y;

Niech a = 45,
B = 23;
Niech sum = dodaj (a, b);
konsola.log (suma);

Wyjście

Oba podane programy wygenerowały to samo wyjście. Teraz spróbujemy podnieść Wyrażenia funkcyjne W JavaScript.

Wyrażenia funkcyjne Podnoszenie w JavaScript

W Wyrażenie funkcji JavaScript, zmienna jest inicjowana z wartością funkcji. W rezultacie wymieniona zmienna jest tylko podnoszona, a nie jej funkcja.

Przykład: Wyrażenia funkcyjne Podnoszenie w JavaScript

Zmienimy nasze regularne „dodać()”Funkcja do„Wyrażenie funkcji”:

var add = funkcja add (x, y)
zwrócić x + y;

Tym razem „Typeerror”Pojawi się w oknie konsoli, informując, że„dodać”Nie jest funkcją:

Skończyliśmy powyższe „Typeerror”Ponieważ silnik JavaScript umieścił„dodać" jak "zmienny”W pamięci, a nie jako funkcja.

To były wszystkie krytyczne informacje związane z Podnoszenie W JavaScript. Możesz dalej zbadać ten temat zgodnie z preferencjami.

Wniosek

Podnoszenie W JavaScript jest obsługiwany zmienne I Deklaracje funkcji. W fazie tworzenia globalnego kontekstu wykonania deklaracja związana z zmiennymi i funkcjami jest przenoszona na szczyt zakresu. W ten sposób miejsce w pamięci jest przydzielane obu z nich, umożliwiając nam stosowanie zmiennych i funkcji przed deklaracją. Ten zapis wyjaśnił podnoszenie w JavaScript wraz z odpowiednimi przykładami.