Zakres i podniesienie zmiennych w JavaScript | Wyjaśniono przykładami

Zakres i podniesienie zmiennych w JavaScript | Wyjaśniono przykładami
W programie JavaScript Zakres zmiennej określa, jak daleko można uzyskać zmienną, podczas gdy podnoszenie w JavaScript jest zjawiskiem, w którym można uzyskać dostęp do zmiennych nawet przed ich inicjalizacją.

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)

var a = 100;
konsola.log („zmienna wewnątrz zakresu bloku:”, a);

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)

var a = 100;
konsola.log („zmienna wewnątrz zakresu bloku:”, a);

konsola.log („zmienna poza zakresem bloków:”, a);

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)

Niech a = 100;
const B = 150;
konsola.Log („Let Inside the Block Zakres:”, A);
konsola.log („Const Inside the Block Scope:”, B);

konsola.log („Wypuść poza lunetą:”, a);
konsola.log („Const Exter the Block Zakres:”, B);

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;
Niech b = 120;
const c = 250;
Jeśli prawda)

konsola.log („zmienna globalna:”, a);
konsola.log („zmienna globalna:”, b);
konsola.log („zmienna globalna:”, c);

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;
dokument.Napisać);
var b = 20;

JavaScript przeczyta to jako:

var a;
var B;
a = 10;
dokument.Napisać);
B = 20;

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);
var a = 45;

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);
a = 45;

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.