Var Vs Zostaw Javascript

| | |

Nowe funkcje zostały dodane do języka JavaScript wraz z wydaniem ECMAScript6 (ES6). Jedna z tych cech wpływa na sposób deklarowania zmiennych. Po dodaniu let i const pojawiły się różnego rodzaju pytania o to, kiedy używać każdej z deklaracji zmiennych.

W tym W artykule omawiamy każdą z opcji, w odniesieniu do ich definicji i użycia w środowisku JavaScript.

Pre-ES6: Var

Przed wydaniem ES6, słowo kluczowe używane do zmienne były deklaracją var .

Zmienne mogą być również ponownie deklarowane i aktualizowane bez błędów

Pierwszy problem z var jest oczywisty: ponowne deklarowanie może powodować błędy w kodzie, jeśli zmienna ma już taką samą nazwę. Mogą wystąpić niezamierzone konsekwencje, jeśli coś zostanie ponownie zadeklarowane i nie zdasz sobie sprawy, że nazwa zmiennej została już użyta w bazie kodu. Wraz z tym pojawiają się również inne osobliwości dotyczące zakresu i podnoszenia.

Zakres

Zakres mówi nam, co zmienne są dla nas dostępne do użycia — mamy zmienne, które mogą mieć zasięg globalny lub lokalny. Co zrobić, jeśli mamy tę samą deklarację zmiennej, ale jest ona globalna, a druga lokalna?

Kiedy nasza var jest zadeklarowana poza funkcją, jest dla nas globalnie dostępna globalnie. Gdy w funkcji zadeklarowane jest "hello" , jest ono dostępne tylko dla funkcji - o zakresie funkcjonalnym lub lokalnym

Kiedy mamy deklarację zmiennej, która jest taka sama, ale zakres jest inny, zmienna w funkcji nie zmienia przypisania zmiennej globalnej, nawet przy wywołaniu helloWorld() . Ponieważ var jest zadeklarowana w funkcji o nazwie „hello”, nie wydaje się być w zasięgu globalnym alternatywnej definicji.

Podnoszenie

Kiedy zmienna jest podnoszona w JavaScript, deklaracje funkcji i zmiennych są przenoszone na początek ich zakresu przed wykonaniem kodu. Zmienna jest zadeklarowana, ale nie zainicjowana, więc początkowa wartość zmiennej jest niezdefiniowana.

Tutaj „cześć” jest podnoszone i deklarowane na szczycie Twojego zasięgu. Więc w zasadzie komputer interpretuje kod w następujący sposób:

Silnik JavaScript widzi, że hello istnieje, ale nie wie, jak hello jest zdefiniowane aż do następnego kroku.

W końcu programiści, którzy pomogli w stworzeniu standardu ECMAScript zdał sobie sprawę, że istnieją pewne drobne problemy z var, które mogą kosztować ich czas i pieniądze. Postanowili więc stworzyć bardziej rygorystyczne słowa kluczowe. Doprowadziło to do stworzenia „urlopu” i „kosztu” w ES6

ES6:. Let

Słowo kluczowe let jest pod wieloma względami bardzo podobne do słowa kluczowego var. Główne różnice to sposób zwracania błędów i definiowania zakresu każdego słowa kluczowego.

Zmienne zadeklarowane i zainicjowane za pomocą słowa kluczowego let można ponownie przypisać, ale nie można ich ponownie zadeklarować

Gdy uruchamiasz powyższy kod w konsoli JavaScript, ostatnia linia zwraca błąd:

SyntaxError: Identyfikator ` hello` został już zadeklarowany

W przeciwieństwie do var, deklarowanie zmiennych za pomocą let nie pozwoli na taką deklarację. Nazwa zmiennej. Możesz jednak zmienić przypisanie, jeśli chcesz, jak pokazano w powyższym przykładzie.

Zakres

Z punktu widzenia mistrza, let jest bardzo podobny do zmienna. Oprócz reguł, które daje nam zasięg globalny lub lokalny, istnieje dodatkowe ograniczenie związane z let. Zmienne zadeklarowane w bloku kodu są dostępne tylko dla tego bloku kodu. Jest to podobne do zakresu funkcjonalnego, ponieważ funkcje są blokami kodu, które mogą być przenoszone jeszcze dalej przez posiadanie oddzielnych bloków w tej funkcji.

W tym kodzie nie ma błędów, ponieważ dwie instancje hello są traktowane jako oddzielne zmienne, ponieważ mają różne zakresy.

Podnoszenie

Podnoszenie to kolejny obszar, w którym deklaracje let i var są podobne. "Var", gdy jest podniesiony, jest inicjowany jako niezdefiniowany. Jednak "leave" generuje błąd odniesienia, jeśli spróbujesz go użyć przed zainicjowaniem.

Zauważ, że słowo kluczowe let jest najlepszym wyborem pod względem składni. Dzieje się tak, ponieważ błędy są generowane, gdy możesz spróbować ponownie zadeklarować zmienną lub użyć jej przed procesem inicjalizacji.

ES6: Const

Słowo kluczowe const ma bardziej rygorystyczne wytyczne niż let słowo kluczowe . Za pomocą const zmiennych nie można deklarować ani ponownie przypisywać. TypeError jest generowany, jeśli spróbujesz ponownie przypisać const.

To powiedziawszy, podczas pracy z obiektami lub tablicami, właściwości obiektu lub tablicy mogą być aktualizowane. Dopóki podstawowa struktura obiektu lub tabeli nie ulegnie zmianie, zawsze możesz ją zaktualizować.

Jak pokazuje przykład, ponowne przypisanie zadania do nowego zestawu właściwości skutkuje błędem TypeError: Przypisanie do zmiennej stałej.. Const nie można ponownie przypisać ani ponownie zadeklarować, z wyjątkiem przypadków, gdy aktualizujesz unikatową właściwość w obiekcie

Zakres i podniesienie

Podobnie jak słowo kluczowe let, const jest blokiem zakresu i nie inicjuje się po podniesieniu , więc zgłosi błąd, jeśli spróbujesz go użyć przed inicjalizacją.

Słowo kluczowe const jest idealne do użycia, dopóki nie będziesz mógł " nie używać więcej To jest, gdy musisz przenieść lub umieścić, aby zaktualizować zmienną

Wnioski

W tym artykule przyjrzeliśmy się różnicom między let, var i koszt . Ze wszystkich obecnie dostępnych słów kluczowych najlepiej nie używać var, chyba że jest to konieczne. Zamiast tego użyj let lub const.

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method