CodeGym /Kurs Javy /Frontend SELF PL /Specjalne typy w JavaScript

Specjalne typy w JavaScript

Frontend SELF PL
Poziom 35 , Lekcja 1
Dostępny

2.1 Zmienne są referencjami

W JavaScript zmienne to referencje do obiektów, a nie same zmienne. To oznacza, że kiedy tworzysz zmienną w JavaScript, po prostu tworzysz referencję do obiektu w pamięci.

Ta cecha języka ma ważne konsekwencje dla pracy ze zmiennymi, szczególnie przy przekazywaniu obiektów do funkcji lub przypisywaniu ich innym zmiennym.

Kiedy tworzysz zmienną i przypisujesz jej wartość, JavaScript alokuje obiekt w pamięci dla tej wartości i sprawia, że zmienna jest referencją do tego obiektu. Jeśli przypiszesz jedną zmienną do drugiej, nowa zmienna będzie odnosić się do tego samego obiektu, co oryginalna zmienna. To oznacza, że zmiany dokonane przez jedną zmienną będą widoczne także w drugiej, jeśli ten obiekt można zmieniać.

Przykład:

JavaScript
    
      let a = [1, 2, 3];
      let b = a;

      b.push(4);
      console.log(a);  // Wyświetli: [1, 2, 3, 4]
    
  

Dodaliśmy liczbę 4 do zmiennej b, ale została ona dodana także do listy w zmiennej a, ponieważ obie zmienne są tylko referencjami do listy [1, 2, 3]

2.2 Typ undefined

W JavaScript istnieją dwa specjalne typy danych: null i undefined. Te typy często budzą pytania u developerów z powodu ich podobieństwa, ale mają różne przeznaczenia i są używane w różnych sytuacjach. Przyjrzyjmy się im bliżej.

Typ undefined

Typ undefined reprezentuje wartość zmiennej, która została zadeklarowana, ale nie zainicjalizowana. Ta wartość jest również zwracana przy próbie dostępu do nieistniejącej właściwości obiektu lub elementu tablicy, który nie istnieje.

Przykłady

1. Niezainicjalizowana zmienna:

JavaScript
    
      let x;
      console.log(x); // undefined
    
  

2. Nieistniejąca właściwość obiektu:

JavaScript
    
      let obj = {};
      console.log(obj.property); // undefined
    
  

3. Nieistniejący element tablicy:

JavaScript
    
      let array = [1, 2, 3];
      console.log(array[5]); // undefined
    
  

4. Brakujący argument funkcji:

JavaScript
    
      function myFunction(a, b) {
        console.log(b); // undefined, jeśli wywołane jako myFunction(1)
      }
      myFunction(1);
    
  

Właściwości undefined:

  • undefined jest typem danych i wartością
  • typeof undefined zwraca undefined

2.3 Typ null

Typ null reprezentuje zamierzoną nieobecność wartości. Ta wartość jest często używana do inicjalizacji zmiennych, które później zostaną przypisane obiektowi, lub do czyszczenia wartości zmiennej.

Przykłady

1. Inicjalizacja zmiennej:

JavaScript
    
      let obj = null;
      console.log(obj); // null
    
  

2. Czyszczenie wartości zmiennej:

JavaScript
    
      let user = { name: "Alice" };
      user = null; // user teraz nie wskazuje na obiekt
    
  

Właściwości null:

  • null jest wartością reprezentującą zamierzoną nieobecność wartości
  • typeof null zwraca object, co jest uznawane za błąd w języku JavaScript (w rzeczywistości null nie jest obiektem)

2.4 Porównanie null i undefined

Mimo że null i undefined mogą być używane do oznaczania nieobecności wartości, różnią się przeznaczeniem i kontekstem użycia.

Właściwość null undefined
Typ Typ prosty Typ prosty
Przeznaczenie Zamierzona nieobecność wartości Niezainicjalizowana zmienna
Zastosowanie Inicjalizacja zmiennych, czyszczenie wartości Nieistniejące właściwości, elementy tablicy
Wartość domyślna Nie Tak (dla niezainicjalizowanych zmiennych, parametrów funkcji)

Przykłady użycia

1. Inicjalizacja zmiennej obiektem lub tablicą:

JavaScript
    
      let myObject = null;
      let myArray = null;
    
  

2. Sprawdzanie wartości:

JavaScript
    
      let value;

      if (value === undefined) {
        console.log("Zmienna nie jest zainicjalizowana.");
      }

      let result = null;

      if (result === null) {
        console.log("Brak wartości.");
      }
    
  

3. Czyszczenie wartości:

JavaScript
    
      let person = { name: "Alice" };
      person = null; // Teraz person nie wskazuje na obiekt
    
  

4. Sprawdzanie istnienia właściwości:

JavaScript
    
      let obj = {};

      if (obj.property === undefined) {
        console.log("Właściwość nie istnieje.");
      }
    
  

Rozumienie różnic między null a undefined w JavaScript jest ważne dla prawidłowego zarządzania wartościami i unikania błędów w kodzie.

undefined zwykle wskazuje na niezainicjalizowane zmienne lub brakujące właściwości, podczas gdy null jest używany do jawnego wskazania na brak wartości.

Prawidłowe użycie tych specjalnych typów danych czyni kod bardziej zrozumiałym i przewidywalnym.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION