Null vs undefined

W JavaScript, null i undefined są dwoma prymitywnymi wartościami, które na pierwszy rzut oka mogą wydawać się podobne, ale służą różnym celom i mają różne zastosowania. Zrozumienie różnic między null i undefined jest kluczowe dla efektywnego programowania i unikania błędów w kodzie JavaScript.

Przykład kodu

W poniższym przykładzie przedstawiamy kilka typowych scenariuszy użycia null i undefined, aby zilustrować ich różnice i podobieństwa.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Różnice między null a undefined w JavaScript</title>
</head>
<body>
    <h3>Przykłady użycia null i undefined</h3>
    <script>
        // Przykład użycia undefined
        // Zmienna nie została zainicjowana, więc jej wartość to undefined
        let uninitializedVariable;
        console.log('Nie zainicjowana zmienna:', uninitializedVariable); // undefined

        // Próba dostępu do właściwości, której nie ma w obiekcie, również zwraca undefined
        const object = {};
        console.log('Nieistniejąca właściwość w obiekcie:', object.nonExistentProperty); // undefined

        // Przykład użycia null
        // Zmienna została świadomie ustawiona na "brak wartości"
        let emptyValue = null;
        console.log('Zmienna ustawiona na null:', emptyValue); // null

        // Porównanie null i undefined
        console.log('Porównanie null === undefined:', null === undefined); // false
        console.log('Porównanie null == undefined:', null == undefined); // true

        // Użycie null w celu świadomego oznaczenia braku wartości
        // na przykład w przypadku, gdy oczekiwana wartość nie została jeszcze załadowana
        function loadUserData(userId) {
            // Załóżmy, że użytkownik o danym ID nie istnieje
            if (userId !== 1) {
                return null;
            }
            // Gdyby użytkownik istniał, zwracane byłyby jego dane
        }
        const userData = loadUserData(2);
        console.log('Wynik ładowania danych użytkownika:', userData); // null
    </script>
</body>
</html>

Opis przykładu

  • undefined jest wartością domyślną dla zmiennych, które nie zostały zainicjowane, a także dla właściwości obiektów lub elementów tablicy, które nie istnieją.
  • null jest świadomie przypisywaną wartością, wskazującą na brak wartości lub na “nic”. Jest często używany, aby wskazać, że zmienna powinna mieć wartość, ale aktualnie nie posiada jej z różnych przyczyn (np. wartość nie została jeszcze przypisana lub nie może być znaleziona).

Podsumowanie

Rozróżnienie między null a undefined jest ważne w kontekście programowania w JavaScript. undefined wskazuje, że zmienna nie została zainicjowana lub że próbujemy odwołać się do nieistniejącej właściwości obiektu. Z kolei null jest wartością, którą programista przypisuje zmiennej, aby wskazać, że świadomie ma ona nie mieć żadnej wartości. Oba te przypadki są traktowane podobnie w luźnych porównaniach (==), ale są rozróżniane w ścisłych porównaniach (===). Zrozumienie i prawidłowe używanie tych dwóch wartości jest kluczowe dla pisania czystego i efektywnego kodu.

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs JavaScript od podstaw w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

Scroll to Top