Повідомлення

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