Zmienne JavaScript - jaka jest różnica między var, let i const w JavaScript?

Zmienne JavaScript - jaka jest różnica między var, let i const w JavaScript?
W ECMAScript 2016 JavaScript wprowadził dwie nowe metody deklarowania zmiennych pozwalać I const słowa kluczowe. JavaScript miał tylko jedną opcję, aby zadeklarować zmienne przed 2016.mi. var Słowo kluczowe. W tym artykule dowiemy się, dlaczego istnieją trzy różne sposoby deklarowania zmiennych w JavaScript; Omówimy również różnicę między tymi trzema artykułami. Ponadto w tym artykule wprowadzi Cię również do takich pojęć, jak zmienny zakres i podnoszenie. Zacznijmy więc od zrozumienia, jaki jest zmienny zakres:

Co to jest w JavaScript

W JavaScript zakres jest zdefiniowany przez kręcone nawiasy. Definiuje blok kodu, który należy wykonać razem. JavaScript ma dwa rodzaje zakresów:

  • Funkcja-scope
  • Block-Scope

Funkcja-scope: Każda zmienna w JavaScript utworzona w funkcji za pomocą var jest funkcja. Jego widoczność jest ograniczona do definicji funkcji i nie można uzyskać do niej dostępu z żadnego poza funkcją:

funkcja showMessage ()
var message = 'hi from Linuxhint';
konsola.log („in:” + wiadomość); // hi, Linuxhint!'

Pokaż wiadomość();
konsola.log („Out:” + wiadomość); ReferenceSerror: Wiadomość nie jest zdefiniowana

Block-Scope: Blok kodu w JavaScript jest zdefiniowany przez kręcone aparaty ortodontyczne. Ten rodzaj zakresu pomoże nam wyraźnie rozróżnić trzy metody deklarowania zmiennych:

Poniżej znajduje się przykład, w którym zadeklarowaliśmy zmienne var, let i const w bloku if, a następnie zalogowaliśmy je do konsoli:

Jeśli prawda)
var message1 = 'hi from Linuxhint';
niech message2 = „Hello from Linuxhint”;
const message3 = „Cześć ponownie z Linuxhint”;
konsola.log („in:” + message1); // „Cześć z Linuxhint”;
konsola.log („in:” + message2); // „Hello from Linuxhint”;
konsola.log („in:” + message3); // „Cześć ponownie z Linuxhint”;

Wszystkie zmienne zostały zarejestrowane do konsoli bez żadnego błędu, ponieważ zostały zalogowane z tego samego bloku.

Jeśli jednak spróbujemy je zalogować spoza bloku if, pojawi się poniżej wspomniany błąd:

Jeśli prawda)
var message1 = 'hi from Linuxhint';
niech message2 = „Hello from Linuxhint”;
const message3 = „Cześć ponownie z Linuxhint”;
konsola.log („in:” + message1); // „Cześć z Linuxhint”;
konsola.log („in:” + message2); // „Hello from Linuxhint”;
konsola.log („in:” + message3); // „Cześć ponownie z Linuxhint”;

konsola.log („out:” + message1); // „Cześć z Linuxhint”;
konsola.log („out:” + message2); // referenceStor: message2 nie jest zdefiniowane
konsola.log („Out:” + Message3); // referenceStor: message3 nie jest zdefiniowane

Jak używać var ​​do deklarowania zmiennej w JavaScript

Przed EcMascript 2016 var była jedyną metodą deklarowania zmiennej w JavaScript, ale miała z nią kilka problemów, więc wprowadzono nowe metody, które można zastosować do deklarowania zmiennych. Najpierw zrozumiemy var A potem porozmawiamy o tych problemach:

Zakres var: Zmienna zasadniczo oznacza, gdzie zmienna będzie dostępna do użycia. Zmienne zadeklarowane za pomocą var Słowo kluczowe ma zakres globalny lub lokalny.

Zmienne, które są zadeklarowane zewnętrznym blokiem funkcji za pomocą var mieć globalny zakres. Globalny zakres oznacza, że ​​zmienna jest dostępna do użycia w dowolnym miejscu w oknie.

Gdy zmienna jest zadeklarowana w funkcji, jest to funkcja, co oznacza, że ​​można ją używać tylko w funkcji:

Aby zrozumieć dalsze, spójrz na poniższy przykład:

funkcja showMessage ()
var message = 'hi from Linuxhint';

Tutaj wiadomość jest wykonywana funkcja, więc nie można uzyskać do niej dostępu poza funkcją. Więc jeśli to zrobimy:

funkcja showMessage ()
var message = 'hi from Linuxhint';

konsola.log („Out:” + wiadomość); // referenceStor: wiadomość nie jest zdefiniowana

To da nam błąd, ponieważ wiadomość nie jest dostępne poza funkcją.

var poza pętlą: Zmienna "I" można uzyskać dostęp z zewnątrz za pętla.

dla (var i = 0; i < 5; i++)
konsola.log („in:” + i);

konsola.log („Out:” + i);

Zmienne var można ponownie zdeklarować i aktualizować: W zmiennych JavaScript zadeklarowanych var Słowo kluczowe może być rekultywowane i aktualizowane w tym samym zakresie:

funkcja showMessage ()
var message = 'hi from Linuxhint';
message = 'Hello from Linuxhint';
var message = „Cześć ponownie z Linuxhint”;
konsola.dziennik (wiadomość); // „Cześć ponownie z Linuxhint”;

Pokaż wiadomość()

Jak używać Let, aby zadeklarować zmienną w JavaScript: pozwalać Słowo kluczowe jest teraz preferowane var dla deklaracji zmiennych; ma kilka ulepszeń var.

Niech blok jest zaskoczony: W JavaScript blok kodu to zbiór stwierdzeń, które są ograniczone parą kręconych nawiasów . Zmienna zadeklarowana za pomocą pozwalać Słowo kluczowe jest dostępne tylko w tym bloku i nie można uzyskać do niego dostępu z zewnątrz:

Jeśli prawda)
niech komunikat = „Cześć z Linuxhint”;
konsola.log („in:” + wiadomość); // „Cześć z Linuxhint”

konsola.log („Out:” + wiadomość); // ReferenceStror

Jeśli używamy wiadomość poza blokiem, w którym został zdefiniowany, zwróci błąd. Jest tak, ponieważ zmienne niech są blokowe.

Niech poza pętlą: Poniższy przykład pokazujący pozwalać zmienne wyjście za pomocą pętli:

dla (niech i = 0; i < 5; i++)
konsola.log („in:” + i);

konsola.log („Out:” + i);

Możemy zostać zaktualizowane, ale nie ponownie zdeklarowane: Zmienna zadeklarowana pozwalać można aktualizować w swoim zakresie tak jak var, Ale w przeciwieństwie do var, Nie można go odnowić:

niech komunikat = „Cześć z Linuxhint”;
message = 'Hello from Linuxhint';

Konsola jest całkowicie pusta i nie zwraca żadnych błędów. Te stwierdzenia zwrócą błąd:

niech komunikat = „Cześć z Linuxhint”;
Niech komunikat = „Hello from Linuxhint”; // SkładniaSerorror: Identyfikator „Wiadomość” została już zadeklarowana

Jednak przedefiniowanie tej samej zmiennej w innym zakresie za pomocą pozwalać nie zwraca żadnego błędu:

niech komunikat = „Cześć z Linuxhint”;
Jeśli prawda)
Niech komunikat = „Hello from Linuxhint”;
konsola.log („in:” + wiadomość); // „Witaj z Linuxhint”

konsola.log („Out:” + wiadomość); // „Cześć z Linuxhint”

pozwalać Słowo kluczowe traktuje te dwie zmienne jako różne, jeśli są w różnych rozszczepieniach, więc nie zwraca żadnego błędu; Ta funkcja pozwalać Słowo kluczowe sprawia, że ​​jest to lepszy wybór niż var. Podczas używania pozwalać, Możesz ponownie wykorzystać nazwy zmiennych w różnych zakresach, nie martwiąc się o to, czy wcześniej użyłeś tej nazwy zmiennej.

Jak używać const, aby zadeklarować zmienną w JavaScript

Zmienne zadeklarowane za pomocą const Słowo kluczowe ma stałe wartości. Oznacza to, że ich wartości nie można zmienić/przenieść. Podobne do zmiennych zadeklarowanych za pomocą pozwalać słowo kluczowe, zmienne zadeklarowane za pomocą var Słowo kluczowe są również blokowe.

Const nie można ponownie zdeklarować ani ponownego uzgadniania: Zmienne zadeklarowane słowem kluczowym const nie można ponowić ponownego oceny ani ponownego uzgadniania w tym samym zakresie. Jeśli więc zadeklarowaliśmy zmienną z słowem kluczowym Const, nie możemy tego zrobić:

const Message = „HI From Linuxhint”;
message = 'Hello from Linuxhint'; // typeerror

Nie będziemy też w stanie tego zrobić:

const Message = „HI From Linuxhint”;
const message = „Hello from Linuxhint”; // Błąd składni

Każda zmienna, która jest zadeklarowana za pomocą const Słowo kluczowe musi zostać zainicjowane w momencie jego deklaracji.

To zachowanie const Słowo kluczowe jakoś zmienia się, jeśli chodzi o obiekty. Chociaż zadeklarowany obiektu nie można zaktualizować, jego właściwości można zmienić

Tak więc, jeśli ogłosimy obiekt z const:

const user =
Nazwa: „Steve”,
Wiek: 13

Chociaż nie można tego zrobić:

User =
Nazwa użytkownika: „Harry”,
Grade: „3.”
// typeerror: przypisanie do stałej zmiennej.

To może być skończone:

użytkownik.name = "Harry";

To zmieni wartość użytkownik.nazwa bez zwracania błędów.

Ostateczna ocena

Deklaracja zmienna Funkcja-scope Block-Scope Redefiniowane
var
pozwalać
const

Wniosek

Zasadniczo jest to dobra praktyka, aby unikać używania var zadeklarować zmienne w JavaScript, ponieważ zakres funkcji jest mylący i nie jest tak oczywisty jak zakres blokowy. pozwalać I const Słowa kluczowe zachęcają deweloperów do korzystania z lepszych praktyk kodowania. Powinieneś na ogół użyć pozwalać dla zmiennych, które musisz ponownie przypisać i użyć const Słowo kluczowe dla wszystkich innych zmiennych. Ten artykuł dokładnie wyjaśnia wszystkie trzy typy zmiennych z przykładami.