Zakres blokowy – let i const
Lekcja 3 z 9 w kursie Podchwytliwe elementy nowoczesnego JavaScriptu (ES6+) w Coddy.
Czym jest zakres blokowy? A nawet wcześniej — czym jest zakres zmiennej?
Zakres zmiennej to po prostu obszar, w którym dana zmienna jest dostępna, tzn. możemy używać zmiennej tylko w jej zakresie.
Zmienne przed ES6 były deklarowane za pomocą słowa kluczowego var. Takie zmienne miały tylko zasięg globalny i zasięg funkcji (lokalny).
W ES6 możemy deklarować zmienne za pomocą słów kluczowych let i const, które mają zakres blokowy.
Blok to po prostu obszar ujęty w parę nawiasów klamrowych — otwierający i zamykający — wewnątrz którego możemy pisać kod JS, np. { // any code }.
{
let x = 2;
}
// x NIE może być tutaj użyte
// ponieważ x nie jest dostępne poza powyższym blokiemPodobnie jest w przypadku const, ponieważ również ma zakres blokowy.
Zmienne zadeklarowane za pomocą
constmuszą zostać zainicjalizowane i nie możemy zmienić ani przypisać nowej wartości po pierwszej inicjalizacji!
const pi = 3.14;
pi = 4.2 // Błąd, niedozwolone przypisanie do const
Jak wspomniano wcześniej, var nie ma zakresu blokowego, ale ma zasięg globalny lub zasięg funkcji.
{
var x = 2;
}
// x MOŻE być tutaj używane, ponieważ x ma zasięg globalny
Oto kilka ważnych kwestii:
- Zmienne zdefiniowane za pomocą
let/constnie mogą być deklarowane ponownie. - Zmienne zdefiniowane za pomocą
let/constmuszą zostać zadeklarowane przed użyciem. - Zmienne zdefiniowane za pomocą
let/constnie mogą być przenoszone na początek zakresu.
Wyzwanie
ŁatwyUtwórz dwie zmienne wewnątrz podanej funkcji — name = "Coddy" przy użyciu let oraz age = 25 przy użyciu const. Wypisz te wartości za pomocą console.log().
Spróbuj swoich sił
function getInfo() {
// Napisz tutaj kod
}Wszystkie lekcje w sekcji Podchwytliwe elementy nowoczesnego JavaScriptu (ES6+)
2Zanurzmy się
Zakres blokowy – let i constFunkcje strzałkoweSpread i restPętla for...ofKlasyPromisesAsync i awaitPoćwicz samodzielnie: Kompilator JavaScript online