Co oznacza, że zmienna jest niezadeklarowana lub niezdefiniowana w JavaScript?

W JavaScript, różnica między zmienną niezadeklarowaną a niezdefiniowaną jest subtelna, ale istotna. Zrozumienie tej różnicy jest kluczowe dla efektywnego debugowania i pisania czystego, wolnego od błędów kodu. W tej lekcji przyjrzymy się, co oznaczają te terminy i jak mogą wpłynąć na działanie skryptów JavaScript.

Zmienne niezadeklarowane i niezdefiniowane

  • Niezadeklarowana zmienna to taka, która została użyta w kodzie, ale nigdy nie została zadeklarowana za pomocą słów kluczowych var, let, czy const.
  • Niezdefiniowana zmienna to zmienna, która została zadeklarowana, ale nie została jeszcze przypisana żadnej wartości.

Różnica jest zasadnicza: próba dostępu do zmiennej niezadeklarowanej spowoduje błąd ReferenceError, natomiast dostęp do zmiennej niezdefiniowanej zwróci wartość undefined.

Przykład kodu

Poniżej znajduje się przykład kodu HTML zagnieżdżonego z JavaScript, który demonstruje różnicę między zmienną niezadeklarowaną a niezdefiniowaną

<!DOCTYPE html>
<html>
<head>
    <title>Niezadeklarowane vs Niezdefiniowane zmienne</title>
</head>
<body>
    <script>
        // Próba dostępu do zmiennej niezadeklarowanej
        try {
            console.log(notDeclared);
        } catch(error) {
            console.error("Błąd: ", error.message);
        }

        // Deklaracja zmiennej bez przypisania wartości
        let notDefined;
        console.log("Wartość niezdefiniowanej zmiennej:",
                     notDefined);

        // Deklaracja i inicjalizacja zmiennej
        let defined = "Zdefiniowana wartość";
        console.log("Wartość zdefiniowanej zmiennej:", defined);
    </script>
</body>
</html>

W tym przykładzie:

  • Pierwsza próba dostępu do notDeclared powoduje błąd ReferenceError, ponieważ zmienna ta nie została zadeklarowana.
  • Zmienna notDefined jest zadeklarowana, ale nie ma przypisanej wartości, więc jej wartość to undefined.
  • Zmienna defined jest zadeklarowana i zdefiniowana, więc konsola wyświetla jej przypisaną wartość.

Podsumowanie

Rozumienie różnicy między zmiennymi niezadeklarowanymi a niezdefiniowanymi w JavaScript jest kluczowe dla pisania skutecznych i bezbłędnych skryptów. Zmienna niezadeklarowana to taka, która została użyta bez wcześniejszej deklaracji, co prowadzi do błędu ReferenceError. Zmienna niezdefiniowana została zadeklarowana, ale nie ma jeszcze przypisanej wartości, co skutkuje wartością undefined przy próbie dostępu. Znajomość tych subtelnych różnic pomaga uniknąć błędów i ułatwia debugowanie kodu.

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

Scroll to Top