Spec-Zone.ru › JavaScript

ReferenceError: присваивание необъявленной переменной "x"

Исключение JavaScript "Assignment to undeclared variable", характерное только для строгого режима, возникает, когда значение присваивается необъявленной переменной.

Сообщение

ReferenceError: x is not defined (V8-based)
ReferenceError: assignment to undeclared variable x (Firefox)
ReferenceError: Can't find variable: x (Safari)

Тип ошибки

ReferenceError только в строгом режиме.

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

У вас есть присваивание в форме x = ..., но x не была ранее объявлена с помощью ключевого слова var, let, или const. Эта ошибка возникает только в коде строгого режима. В нестрогом коде присваивание необъявленной переменной неявно создает свойство в глобальной области видимости.

Примеры

Неверные случаи

В этом случае переменная "bar" является необъявленной переменной.

function foo() {
  "use strict";
  bar = true;
}
foo(); // ReferenceError: assignment to undeclared variable bar

Верные случаи

Чтобы сделать "bar" объявленной переменной, вы можете добавить ключевое слово let, const, или var перед ней.

function foo() {
  "use strict";
  const bar = true;
}
foo();

Смотрите также

  • Строгий режим
  • var
  • let
  • const

© 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/Undeclared_var

Spec-Zone.ru

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