CodeGym /Kursy /Frontend SELF PL /Zakresy zmiennych

Zakresy zmiennych

Frontend SELF PL
Poziom 35 , Lekcja 4
Dostępny

5.1 Globalny zakres zmiennych

Zakresy zmiennych (scopes) określają dostępność zmiennych i funkcji w różnych częściach programu. W JavaScript istnieją trzy główne typy zakresów: globalny, lokalny i blokowy. Zrozumienie tych zakresów jest ważne dla efektywnego zarządzania danymi i zapobiegania błędom w kodzie.

Globalny zakres obejmuje wszystkie zmienne i funkcje deklarowane poza funkcjami lub blokami kodu. Te zmienne i funkcje są dostępne z każdego miejsca w kodzie.

Przykład 1: Deklaracja zmiennych globalnych

JavaScript
    
      var globalVar = 'I am a global variable';

      function showGlobalVar() {
        console.log(globalVar); // Dostęp do zmiennej globalnej
      }
      showGlobalVar(); // Wyświetli: I am a global variable

      console.log(globalVar); // Dostęp do zmiennej globalnej
    
  

Przykład 2: Funkcje globalne

W tym przykładzie zmienna globalVar i funkcja globalFunction() są zadeklarowane w globalnym zakresie i są dostępne z każdego miejsca w kodzie.

JavaScript
    
      function globalFunction() {
        return 'I am a global function';
      }

      console.log(globalFunction()); // Wyświetli: I am a global function
    
  

5.2 Lokalny zakres zmiennych

Lokalny zakres obejmuje zmienne i funkcje deklarowane wewnątrz funkcji. Te zmienne i funkcje są dostępne tylko w tej funkcji i nie są dostępne poza nią.

Przykład 3: Deklaracja zmiennych lokalnych

W tym przykładzie zmienna localVar jest deklarowana wewnątrz funkcji localScopeExample() i nie jest dostępna poza tą funkcją:

JavaScript
    
      function localScopeExample() {
        var localVar = 'I am a local variable';
        console.log(localVar); // Dostęp do zmiennej lokalnej
      }

      localScopeExample(); // Wyświetli: I am a local variable

      console.log(localVar); // Błąd: localVar is not defined
    
  

Przykład 4: Funkcje lokalne

W tym przykładzie funkcja innerFunction() jest deklarowana wewnątrz funkcji outerFunction() i nie jest dostępna poza outerFunction():

JavaScript
    
      function outerFunction() {
        function innerFunction() {
          return 'I am a local function';
        }
        console.log(innerFunction()); // Dostęp do funkcji lokalnej
      }

      outerFunction(); // Wyświetli: I am a local function

      console.log(innerFunction()); // Błąd: innerFunction is not defined
    
  

5.3 Blokowy zakres zmiennych

Blokowy zakres obejmuje zmienne deklarowane za pomocą let i const wewnątrz bloku kodu ograniczonego klamrami {}. Te zmienne są dostępne tylko wewnątrz tego bloku i nie są dostępne poza nim.

Przykład 5: Deklaracja zmiennych z let

W tym przykładzie zmienna blockVar jest deklarowana wewnątrz bloku if i nie jest dostępna poza nim:

JavaScript
    
      if (true) {
        let blockVar = 'I am a block-scoped variable';
        console.log(blockVar); // Dostęp do zmiennej blokowej
      }

      console.log(blockVar); // Błąd: blockVar is not defined
    
  

Przykład 6: Deklaracja zmiennych z const

W tym przykładzie zmienna i jest deklarowana wewnątrz bloku for i nie jest dostępna poza nim:

JavaScript
    
      for (const i = 0; i < 3; i++) {
        console.log(i); // Dostęp do zmiennej blokowej
      }

      console.log(i); // Błąd: i is not defined
    
  

Właściwości blokowego zakresu

Przykład 7: Zagnieżdżone bloki

W tym przykładzie zmienna innerVar jest dostępna tylko wewnątrz wewnętrznego bloku, a zmienna outerVar jest dostępna zarówno wewnątrz zewnętrznego, jak i wewnętrznego bloku:

JavaScript
    
      if (true) {
        let outerVar = 'I am in the outer block';

        if (true) {
          let innerVar = 'I am in the inner block';

          console.log(outerVar); // Dostęp do zmiennej zewnętrznego bloku
          console.log(innerVar); // Dostęp do zmiennej wewnętrznego bloku
        }

        console.log(outerVar); // Dostęp do zmiennej zewnętrznego bloku
        console.log(innerVar); // Błąd: innerVar is not defined
      }
    
  

5.4 Interakcja różnych zakresów

Przykład 8: Interakcja pomiędzy globalnym a lokalnym zakresem

W tym przykładzie funkcja scopeExample() ma dostęp do globalnej zmiennej globalVar oraz swojej lokalnej zmiennej localVar:

JavaScript
    
      var globalVar = 'I am a global variable';

      function scopeExample() {
        var localVar = 'I am a local variable';

        console.log(globalVar); // Dostęp do globalnej zmiennej
        console.log(localVar);  // Dostęp do lokalnej zmiennej
      }

      scopeExample(); // Wyświetli: I am a global variable
                      //  I am a local variable

      console.log(globalVar); // Dostęp do globalnej zmiennej
      console.log(localVar);  // Błąd: localVar is not defined
    
  

Przykład 9: Zakresy z funkcją strzałkową

W tym przykładzie funkcja strzałkowa arrowFunction() ma dostęp do globalnej zmiennej globalVar oraz swojej lokalnej zmiennej localVar:

JavaScript
    
      let globalVar = 'I am a global variable';

      const arrowFunction = () => {
        let localVar = 'I am a local variable in arrow function';

        console.log(globalVar); // Dostęp do globalnej zmiennej
        console.log(localVar);  // Dostęp do lokalnej zmiennej
      };

      arrowFunction(); // Wyświetli: I am a global variable
                       // I am a local variable in arrow function

      console.log(globalVar); // Dostęp do globalnej zmiennej
      console.log(localVar);  // Błąd: localVar is not defined
    
  
1
Опрос
Funkcje,  35 уровень,  4 лекция
недоступен
Funkcje
Funkcje
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION