Movatterモバイル変換


[0]ホーム

URL:


  1. 개발자를 위한 웹 기술
  2. JavaScript
  3. JavaScript 참고서
  4. JavaScript error reference
  5. SyntaxError: for-in loop head declarations may not have initializers

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

SyntaxError: for-in loop head declarations may not have initializers

메세지

    SyntaxError: for-in loop head declarations cannot have an initializer (Edge)    SyntaxError: for-in loop head declarations may not have initializers (Firefox)    SyntaxError: for-in loop variable declaration may not have an initializer. (Chrome)

에러 타입

엄격(Strict) 모드에서의SyntaxError.

무엇이 잘못되었을까?

for...in 반복문의 선언부에 초기화 구문이 포함되어 있습니다. 즉, |for (var i = 0 in obj)| 구문을 통해 변수가 정의되고 값이 할당된 것을 말합니다. 비엄격 모드(non-strict) 모드에서는 이 초기화 구문이 무시되어|for (var i in obj)| 처럼 동작합니다. 하지만 엄격 모드에서는SyntaxError 가 발생합니다.

예제

이 예제는SyntaxError를 발생시킵니다.

js
const obj = { a: 1, b: 2, c: 3 };for (const i = 0 in obj) {  console.log(obj[i]);}// SyntaxError: for-in loop head declarations may not have initializers

올바른 for-in 반복문

for-in 반복문의 선언부에서 초기화 구문(i = 0)을 삭제합니다.

js
"use strict";var obj = { a: 1, b: 2, c: 3 };for (var i in obj) {  console.log(obj[i]);}

배열 반복

for...in 반복문은배열을 반복하는데에는 사용하지 않습니다. 배열(Array)을 반복하기 위해for-in 반복문 대신에for 반복문을 사용하려고 한 적이 있습니까?for 반복문은 선언부에서 초기화도 할 수 있습니다:

js
var arr = ["a", "b", "c"];for (var i = 2; i < arr.length; i++) {  console.log(arr[i]);}// "c"

같이 보기

  • for...in
  • for...of – 엄격 모드와 비엄격 모드에서 모두 초기화를 허용하지 않습니다.
  • for – 배열 반복에 적합하고 초기화도 가능합니다.

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp