--- title: >- SyntaxError: a declaration in the head of a for-of loop can't have an initializer slug: Web/JavaScript/Reference/Errors/Invalid_for-of_initializer tags: - Error - JavaScript - SyntaxError translation_of: Web/JavaScript/Reference/Errors/Invalid_for-of_initializer ---
{{jsSidebar("Errors")}}

Сообщение

SyntaxError: a declaration in the head of a for-of loop can't have an initializer (Firefox)

SyntaxError: for-of loop variable declaration may not have an initializer. (Chrome)

Тип ошибки

{{jsxref("SyntaxError")}}

Что случилось?

В заголовке цикла for...of инициализируется переменная.  Иными словами, переменная объявляется и получает значение|for (var i = 0 of iterable)|. В подобных циклах это не допускается. Инициализировать переменные можно в циклах for.

Примеры

Неправильный цикл for-of

let iterable = [10, 20, 30];

for (let value = 50 of iterable) {
  console.log(value);
}

// SyntaxError: a declaration in the head of a for-of loop can't
// have an initializer

Правильный цикл for-of

Надо убрать инициализацию (value = 50) в заголовке цикла for-of. Если требуется использовать смещение 50, это можно сделать в теле цикла.

let iterable = [10, 20, 30];

for (let value of iterable) {
  value += 50;
  console.log(value);
}
// 60
// 70
// 80

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