Zmienne zakres w JavaScript
Przed zanurzeniem się w zakresie zmiennej najpierw musimy zrozumieć, co jest zmienną w JavaScript i jak utworzyć zmienną.
Zmienna działa jako kontener, który przechowuje niektóre dane. Zmienne te można tworzyć za pomocą trzech różnych słów kluczowych jako „var”, „let” i „const”.
W JavaScript zmienna ma dwa rodzaje zakresu i omówimy każdy z nich z niektórymi przykładami.
Zakres bloków w JavaScript
Wcześniej JavaScript nie obsługuje zakresu bloków, ale po wydaniu ES6 tak robi. ES6 wprowadza kilka nowych słów kluczowych, takich jak Let and Const, te słowa kluczowe oferują zakres bloków w JavaScript.
Zakres bloków w JavaScript jest reprezentowany przez Curly Braces „”, która określa jakąkolwiek zmienną zadeklarowaną w zakresie bloków, nie można uzyskać poza nim. Zmienne zainicjowane w bloku są znane jako zmienne lokalne.
Teraz zrozumiemy działanie zmiennych, zadeklarowane w zakresie bloków.
Zmienna zadeklarowana za pomocą słowa kluczowego „var” nie obsługuje zakresu bloków, oznacza to, że możemy uzyskać dostęp do zmiennej spoza bloku. Rozważ poniższy przykład, w którym zmienna jest zadeklarowana za pomocą słowa kluczowego „var” i obserwuj, jak to działa:
Jeśli prawda)Utworzyliśmy zmienną wewnątrz bloku za pomocą słowa kluczowego „var” i przypisaliśmy jej wartość „100”. Po uzyskaniu dostępu do tej zmiennej w bloku pokaże następujące dane wyjściowe:
Zwiększ powyższy przykład nieco więcej i uzyskaj dostęp do zmiennej „A” poza blokiem:
Jeśli prawda)Teraz obserwuj wyjście:
Wyjście weryfikuje, że słowo kluczowe „var” nie może mieć zakresu blokowego.
Teraz utwórz zmienne za pomocą słowa kluczowego „Let” i „const” i staraj się uzyskać do nich dostęp spoza zakresu bloku:
Jeśli prawda)Teraz uzyskuj dostęp do zarówno zmiennych od wewnątrz, jak i z zewnątrz bloku:
Wyjście zweryfikuje, że zmienne te są dostępne wewnątrz zakresu bloku, ale kiedy próbujemy uzyskać do nich dostęp spoza zakresu bloku, występuje błąd ”Nieprawidłowy odniesienie”:
Globalny zakres w JavaScript
Zmienne, które mogą być dostępne z dowolnego miejsca z zewnątrz lub wewnątrz funkcji/bloku, są znane jako globalne zmienne zakresu. Bez względu na to, że są tworzone poza funkcją/blokiem lub w funkcji lub bloku i.mi. Zmienna utworzona wewnątrz bloku za pomocą słowa kluczowego „var” może być dostępna z dowolnego miejsca w kodzie JavaScript.
W JavaScript, jeśli zmienna nie zostanie poprawnie zadeklarowana, domyślnie zostanie utworzona w globalnym zakresie.
Rozważ następujący przykład i zauważ, jak działa zmienna globalna:
var a = 100;W tym przykładzie zadeklarowaliśmy zmienne na całym świecie i uzyskaliśmy dostęp do nich w bloku IF-Satement:
Wyjście weryfikuje, że możemy uzyskać dostęp do zmiennych w dowolnym miejscu w programie, które są zdefiniowane na całym świecie:
Podnoszenie w JavaScript:
Unikanie odnosi się do zjawiska, które przesuwa zmienne deklaracje na górę.
Tutaj musimy zrozumieć różnicę między deklaracją zmienną a inicjacją zmienną, na przykład „var a”, jest deklaracją zmienną, podczas gdy „a = 10” jest inicjalizacją zmienną. Teraz weźmiemy przykład, aby zrozumieć, w jaki sposób piszemy kod i jak JavaScript interpretuje ten kod:
var a = 10;JavaScript przeczyta to jako:
var a;JavaScript przesuwa część deklaracji na górę, podczas gdy część inicjalizacyjna pozostaje w pozycji.
Do tej pory we wszystkich przykładach utworzyliśmy zmienną i przypisaliśmy jej pewną wartość, a następnie uzyskaliśmy dostęp do zmiennej na końcu. Co jeśli spróbujemy uzyskać dostęp do dowolnej zmiennej przed jej inicjalizacją/deklaracją. Cóż, w takim przypadku JavaScript pokazuje niezdefiniowaną wartość, jak to miało miejsce w poniższym przykładzie:
konsola.log („dostęp przed deklaracją:”, a);W tym przykładzie staramy się wydrukować wartość zmiennej „a”, przed jej deklaracją, a następnie w następnej instrukcji utworzyliśmy zmienną i przypisujemy jej wartość. Po pomyślnym wykonaniu otrzymamy następujące dane wyjściowe:
Dzieje się tak, ponieważ nawet przed wykonaniem tego kodu JavaScript przypisał niezdefiniowaną wartość do „var a”Następnie brzmi„konsola.Log (a)" i wtedy "A = 45”Dlatego pokazuje niezdefiniowane zamiast 45.
Podczas pomijania słowa kluczowego „var” oznacza, że nie deklarujemy zmiennej, po prostu inicjuje zmienną. W takim przypadku, jeśli spróbujemy uzyskać dostęp do zmiennej przed jej deklaracją, będziemy musieli stawić czoła referenceErrorowi, tak jak to zrobiliśmy w poniższym przykładzie:
konsola.log („dostęp przed deklaracją:”, a);Próbujemy wydrukować wartość „A” na konsoli przed jej deklaracją, a następnie w następnej instrukcji przypisujemy wartość do zmiennej „A” bez użycia słowa kluczowego „var”:
Otrzymujemy następujące dane wyjściowe:
Wniosek
W JavaScript Zakres zmiennej określa, gdzie można uzyskać dostęp do zmiennej w kodzie, podczas gdy podnoszenie zmiennych odnosi się do koncepcji wywoływania deklaracji zmiennych na górę programu. W tym artykule zawiera przykłady do zrozumienia pojęcia zakresu i podnoszenia zmiennej w JavaScript.