Junior
Czym jest zakres (scope) zmiennych w JavaScript?
sobes.tech AI
Odpowiedź od AI
Zakres definiuje dostępność zmiennych, funkcji i obiektów w określonej części kodu.
W JavaScript istnieje kilka typów zakresów:
- Zakres globalny (Global Scope): Zmienne zadeklarowane poza funkcjami lub blokami są dostępne z dowolnego miejsca w kodzie.
- Zakres funkcji (Function Scope): Zmienne zadeklarowane wewnątrz funkcji (przed ES6) są dostępne tylko w tej funkcji i funkcjach zagnieżdżonych.
- Zakres blokowy (Block Scope): Zmienne zadeklarowane za pomocą
leticonstwewnątrz bloków (np.{}lub pętli) są dostępne tylko w tym bloku.
Przykład:
// Zakres globalny
let globalVar = "Jestem globalny";
function someFunction() {
// Zakres funkcji (przed ES6)
var functionVar = "Jestem w funkcji";
console.log(globalVar); // Dostępna zmienna globalna
if (true) {
// Zakres blokowy (dla let i const)
let blockVar = "Jestem w bloku";
console.log(functionVar); // Dostępna zmienna funkcji
console.log(blockVar); // Dostępna zmienna blokowa
}
// console.log(blockVar); // Błąd: blockVar nie jest dostępne tutaj
}
someFunction();
// console.log(functionVar); // Błąd: functionVar nie jest dostępne tutaj
Słowa kluczowe do deklarowania zmiennych i ich wpływ na zakres:
| Słowo kluczowe | Zakres przed ES6 | Zakres po ES6 |
|---|---|---|
var |
Funkcyjny | Funkcyjny |
let |
- | Blokowy |
const |
- | Blokowy |
Zrozumienie zakresu jest kluczowe, aby unikać konfliktów nazw zmiennych i pisać czysty, przewidywalny kod.