Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Сообщение

ReferenceError: assignment to undeclared variable "x" (Firefox)
ReferenceError: "x" is not defined (Chrome)
ReferenceError: Variable undefined in strict mode (Edge)

Тип ошбки

ReferenceError предупреждение только в строгом режиме.

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

Значению присвоена необъявленная переменная. Другими словами, было задание без ключевого слова var. Существуют некоторые различия между объявленными и необъявленными переменными, что может привести к неожиданным результатам, поэтому JavaScript представляет ошибку в строгом режиме.
 

Три примечания о объявленных и необъявленных переменных:

  • Объявленные переменные ограничены в контексте выполнения, в котором они объявлены. Необъявленные переменные всегда глобальны.
  • Объявленные переменные создаются до выполнения любого кода. Необъявленные переменные не существуют до тех пор, пока не будет выполняться присвоение им кода.
  • Объявленные переменные - это неконфигурируемое свойство контекста их выполнения (функция или глобальная). Необъявленные переменные настраиваются (например, могут быть удалены).

Более подробную информацию и примеры см. На странице справки Переменных

Errors about undeclared variable assignments occur in strict mode code only. In non-strict code, they are silently ignored.

Examples

Invalid cases

In this case, the variable "bar" is an undeclared variable.

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

Valid cases

To make "bar" a declared variable, you can add the var keyword in front of it.

function foo() {
  'use strict';
  var bar = true;
}
foo();

See also

Метки документа и участники

Внесли вклад в эту страницу: Matthew11770
Обновлялась последний раз: Matthew11770,