Spec-Zone.ru › JavaScript

ReferenceError: "x" не определено

JavaScript-исключение "переменная не определена" возникает, когда где-то используется несуществующая переменная.

Сообщение

ReferenceError: "x" is not defined (V8-based & Firefox)
ReferenceError: Can't find variable: x (Safari)

Тип ошибки

ReferenceError.

Что пошло не так?

Где-то используется несуществующая переменная. Эта переменная должна быть объявлена, или вы должны убедиться, что она доступна в вашем текущем скрипте или области видимости.

Примечание: При загрузке библиотеки (например, jQuery) убедитесь, что она загружена до того, как вы попытаетесь получить доступ к переменным библиотеки, таким как "$". Поместите элемент <script>, который загружает библиотеку, перед вашим кодом, который ее использует.

Примеры

Переменная не объявлена

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

Переменная "foo" нигде не определена. Она должна быть строкой, чтобы метод String.prototype.substring() работал.

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

Неправильная область видимости

Переменная должна быть доступна в текущем контексте выполнения. Переменные, определенные внутри функции, не могут быть доступны нигде вне функции, поскольку переменная определена только в области видимости функции.

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

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

Однако функция может получить доступ ко всем переменным и функциям, определенным в области видимости, в которой она определена. Другими словами, функция, определенная в глобальной области видимости, может получить доступ ко всем переменным, определенным в глобальной области видимости.

const num1 = 2;
const num2 = 3;

function numbers() {
  return num1 + num2;
}

console.log(numbers()); // 5

См. также

  • Область видимости
  • Объявление переменных в руководстве по JavaScript
  • Область видимости функций в руководстве по JavaScript

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Not_defined

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API