
W JavaScripcie zmienne mają zasięg, po angielsku scope. To ważne pojęcie w JavaScripcie, bo bardzo często bywa źródłem błędów. Zasięg zależy od miejsca, w którym deklarujesz zmienną. Jeśli deklarujesz ją w funkcji, użyjesz jej tylko w tej funkcji. Zmienne dzielą się na dwa rodzaje: zmienne lokalne i zmienne globalne.
var tutu = "tutu"; // 1
function maFonction() {
var toto = "toto"; // 2
return toto;
}- tutu to zmienna globalna: możesz jej użyć w dowolnym miejscu skryptu, także wewnątrz funkcji.
- toto to zmienna lokalna: poza swoją funkcją jest niedostępna.
Zmienna lokalna
Kiedy tworzysz zmienną wewnątrz funkcji za pomocą var, korzystasz z niej wyłącznie w tej funkcji. Mówimy wtedy, że zmienna jest lokalna, albo że ma zasięg funkcji, w której ją zadeklarowano. Poza nią nie da się jej odczytać. Przeglądarka tworzy zmienne lokalne w chwili wywołania funkcji i kasuje je, gdy funkcja skończy pracę. Warto też wiedzieć:
- Dwie różne funkcje mogą używać zmiennych o tej samej nazwie i nie wywoła to konfliktu nazw.
- Jeśli funkcja zostanie wywołana kilka razy, ta sama zmienna może za każdym razem trzymać inną wartość.
Zmienna globalna
Zmiennych globalnych używasz w dowolnym miejscu skryptu, a deklaruje się je poza funkcją. Mówimy wtedy o zasięgu globalnym.
Zmienne globalne siedzą w pamięci przeglądarki. Zajmują więcej miejsca niż lokalne i zwiększają ryzyko konfliktu nazw z innymi skryptami. Dlatego tam, gdzie to możliwe, wybieraj zmienne lokalne.


