--- title: 'ReferenceError: "x" is not defined' slug: Web/JavaScript/Reference/Errors/Not_defined translation_of: Web/JavaScript/Reference/Errors/Not_defined ---
{{jsSidebar("Errors")}}

Wiadomość

ReferenceError: "x" is not defined

Typ błędu

{{jsxref("ReferenceError")}}.

Co poszło nie tak?

Istnieje gdzieś niezadeklarowana zmienna. Zmienna ta powinna być zadeklarowana, a jeśli jest upewnij się czy jest dostępna w twoim skrypcie albo {{Glossary("scope")}}.

Notatka: Gdy ładujesz bibliotekę (na przykład jQuery), upewnij się, że jest załadowana przed dostępem do zmiennych biblioteki, np "$". Dodaj znacznik {{HTMLElement("script")}} ładujący bibliotekę przed twoim kodem, który jej używa.

Przykład

Zmienna niezadeklarowana

foo.substring(1); // ReferenceError: foo is not defined

Zmianna "foo" jest niezdefiniowana. Powinna być jakąś wartością string wiec("String.prototype.substring()")}} metoda ta będzie działać.

var foo = 'bar';
foo.substring(1); // "ar"

Zły zasięg

Zmienna musi być dostępna w bieżącym kontekście realizacji. Zmienne zdefiniowane wewnątrz funcji nie mogą być dostępne z dowolnego miejsca poza funkcją, powodem jest to że zmienna jest zdefiniowana tylko zmienną lokalną funkcji.

function numbers() {
  var num1 = 2,
      num2 = 3;
  return num1 + num2;
}

console.log(num1); // ReferenceError num1 is not defined.

Jakkolwiek funkcja może mieć dostęp do wszystkich zmiennych dzięki deklaracji zmiennych globalnie. Zmienne globalne są dostępne dla wszystkich funkcji.

var num1 = 2,
    num2 = 3;

function numbers() {
  return num1 + num2;
}

console.log(num1); // 2

Zobacz także