ReferenceError: "x" не определено
JavaScript-исключение "переменная не определена" возникает, когда где-то используется несуществующая переменная.
Сообщение
ReferenceError: "x" is not defined (V8-based & Firefox) ReferenceError: Can't find variable: x (Safari)
Тип ошибки
Что пошло не так?
Где-то используется несуществующая переменная. Эта переменная должна быть объявлена, или вы должны убедиться, что она доступна в вашем текущем скрипте или области видимости.
Примечание: При загрузке библиотеки (например, 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