W JavaScript, słowa kluczowe let
i const
służą do deklarowania zmiennych z zakresem blokowym (block scope). Oznacza to, że zmienne te są dostępne tylko w obrębie bloku, w którym zostały zadeklarowane, na przykład wewnątrz pętli, instrukcji warunkowej lub bloku kodu otoczonego klamrami {}
.
Zakres blokowy
Zakres blokowy oznacza, że zmienna deklarowana przez let
lub const
jest dostępna tylko w obrębie tego samego bloku {}
. To różni się od zmiennych deklarowanych przez var
, które mają zakres funkcji (function scope) lub są globalne, jeśli nie są zadeklarowane wewnątrz funkcji.
if (true) {
let blockScopedVariable = "Dostępna wewnątrz bloku";
const anotherBlockScopedVariable = "Również dostępna wewnątrz bloku";
console.log(blockScopedVariable); // Dostępna wewnątrz bloku
console.log(anotherBlockScopedVariable); // Również dostępna wewnątrz bloku
}
// Błąd: blockScopedVariable is not defined
// console.log(blockScopedVariable);
// Błąd: anotherBlockScopedVariable is not defined
// console.log(anotherBlockScopedVariable);
let
vs const
Oba te słowa kluczowe tworzą zmienne z zakresem blokowym, ale mają ważną różnicę:
let
pozwala na późniejszą zmianę przypisanej wartości zmiennej.const
wymaga inicjalizacji wartości przy deklaracji i nie pozwala na jej zmianę w przyszłości.
Przykład z pętlą
let
jest szczególnie przydatne w pętlach, gdzie każda iteracja pętli może mieć własną kopię zmiennej:
for (let i = 0; i < 3; i++) {
console.log(i); // 0, 1, 2
}
// console.log(i); // Błąd: i is not defined
Dzięki zakresowi blokowemu, zmienna i
jest dostępna tylko wewnątrz pętli for
.
Podsumowanie
Słowa kluczowe let
i const
wprowadzają zakres blokowy do JavaScript, co pozwala na lepszą kontrolę nad zasięgiem i żywotnością zmiennych. Pomagają one w pisaniu kodu bardziej przewidywalnego i bezpiecznego, ograniczając widoczność zmiennych do miejsc, w których są one rzeczywiście potrzebne. Użycie let
i const
zamiast var
jest zalecane we współczesnym JavaScript.
Jeżeli chcesz przyśpieszyć swoją naukę chciałbym polecić mój kurs video JavaScript w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.