W waniliowym JavaScript, zmienne są deklarowane przy użyciu słowa kluczowego ’var
’. W ES6, teraz, można zdefiniować zmienne używając słów kluczowych let
i const
również. Wszystkie trzy słowa kluczowe mają podobną składnię dla deklaracji zmiennych i inicjalizacji, ale różnią się zakresem i sposobem użycia. Poznajmy różnice pomiędzy tymi trzema słowami kluczowymi.
var słowo kluczowe
’var
’ słowo kluczowe ma tradycyjną składnię definicji zmiennej. Opcjonalnie, możesz zainicjować zmienną wartością. f nie zainicjujesz swojej zmiennej w deklaracji var
, zostanie jej automatycznie przypisana wartość JavaScript undefined
.
1) Zakres
2) Hoisting deklaracji var
Pamiętaj, że zmienne zadeklarowane za pomocą słowa kluczowego var
podlegają hoistingowi. Hoisting oznacza, że jeśli zadeklarujemy zmienną (zadeklarowaną, ale nie zainicjalizowaną) na końcu funkcji, runtime wyniesie ją na górę i nie będziemy mieli żadnego błędu, jeśli użylibyśmy tej zmiennej przed jej zadeklarowaniem.
Read More: JavaScript Hoisting
3) Jeśli nie używasz słowa kluczowego 'var’
W JavaScript, jeśli nie używasz słowa kluczowego var
do deklaracji zmiennej (deklaracja niejawna), to zmienna zostanie utworzona w zakresie globalnym. np.
for(index=0; index< array.length; index++){//index is in global scope //code}
Powyższa pętla for utworzy zmienną o nazwie index
w zakresie globalnym. Jeśli ktoś inny również używał zmiennej globalnej index
, to właśnie nadpisałeś jego zmienną.
Aby uniknąć nadania zmiennej globalnego zakresu, musisz użyć słowa kluczowego var
w deklaracji zmiennej.
słowo kluczowelet
let
słowo kluczowe jest bardzo podobne do słowa kluczowego var
– z większym ograniczeniem w zakresie.
słowo kluczoweconst
-
const
deklaruje zmienną o stałym zakresie (block-scoped) z wartością stałą. Jest to w zasadzie deklaracja zmiennej ze słowem kluczowym ’var
’, gdzie wartość zmiennej jest stała i nie może być zmieniona. -
const
przestrzega tych samych zasad zakresu co słowo kluczowelet
. - jeśli wiesz, że zmienna, którą deklarujesz nie może i nie powinna być dopuszczona do ponownego przypisania, wtedy zadeklaruj ją za pomocą const, w przeciwnym razie użyj słowa kluczowego let.
Syntaktyka i użycie
const PI = "3.14";PI = 12;//Uncaught TypeError: Assignment to constant variable.
.