Jaki jest zakres (scope) dla let i const w JavaScript

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.

 

Scroll to Top