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
, czyconst
. - 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łądReferenceError
, ponieważ zmienna ta nie została zadeklarowana. - Zmienna
notDefined
jest zadeklarowana, ale nie ma przypisanej wartości, więc jej wartość toundefined
. - 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.