Повідомлення
ReferenceError: "x" is not defined
Тип помилки
ReferenceError.
Що пішло не так?
Є неіснуюча змінна, яка посилається кудись. Ця змінна повинна бути оголошена, або необхідно переконатися, що вона доступна у вашому поточному скрипті або області вихідного коду ( scope (en-US) ).
Примітка: При використанні сторонніх бібліотек (наприклад, 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