--- 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 ---
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
for...of
for...in
– В строгом режиме инициализация тоже не разрешается (SyntaxError: for-in loop head declarations may not have initializers)for
– Инициализация во время итерации разрешена.