This page was translated from English by the community.Learn more and join the MDN Web Docs community.
ReferenceError: "x" is not defined
Сообщение
ReferenceError: "x" is not defined
In this article
Тип ошибки
Что пошло не так?
Есть несуществующая переменная, которая ссылается куда-то. Эта переменная должна быть объявлена, или вам необходимо убедиться, что она доступна в вашем текущем скрипте или области исходного кода (scope).
Примечание:При использовании сторонних библиотек (такие как jQuery), убедитесь, что они загружаются до того, как вы используете переменные "$". Поместите тег<script> загружающий вашу библиотеку до того как вы будете использовать её.
Примеры
>Переменная не объявлена
foo.substring(1); // ReferenceError: foo is not definedПеременная "Foo" не определена где-либо. Она должна быть в какой-то строке, так чтобыString.prototype.substring() метод начал работать.
var foo = "bar";foo.substring(1); // "ar"Неправильная зона доступности
Переменная должна быть доступна в текущем контексте исполнения. Переменные, определённые внутрифункции не могут быть доступны из любой точки за пределами функции, так как переменная определена только в области видимости самой функции.
function numbers() { var num1 = 2, num2 = 3; return num1 + num2;}console.log(num1); // ReferenceError num1 is not defined.Тем не менее, функция может получить доступ ко всем переменным и функциям, определённым в области видимости, в которой она определена. Другими словами, функция, определённая в глобальной области может получить доступ ко всем переменным, определённым в глобальном масштабе.
var num1 = 2, num2 = 3;function numbers() { return num1 + num2;}console.log(num1); // 2