Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
Исключение "for-in loop head declarations may not have initializers" возникает в строгом режиме, когда в управляющей конструкции цикла for...in присваивается значение переменной-итератору, например for (var i = 0 in obj). В нестрогом режиме также будет возникать исключение, если переменная-итератор объявлена через const, например for (const i = 0 in obj).
SyntaxError только в строгом режиме.
Управляющая конструкция цикла for...in содержит выражение инициализации. Другими словами, при создании цикла присваивается значение переменной-итератору. В нестрогом режиме эта конструкция игнорируется, а поведение равно for (var i = 0 in obj). В строгом же режиме, будет ошибка синтаксиса SyntaxError. Однако, даже в нестрогом режиме присвоение значения переменной-итератору, объявленной через const, вроде for (const i = 0 in obj), приведёт к ошибке синтаксиса SyntaxError.
Данный пример приведёт к ошибке синтаксиса:
Нужно удалить присвоение значения (i = 0) из инициализации цикла for-in.
Цикл for...in не должен использоваться для итерации массива. Вы намеревались использовать цикл for вместо цикла for-in для итерации Array? Цикл for позволяет также установить инициализатор:
This page was last modified on 28 авг. 2023 г. by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.