아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
고독한븍극곰30
고독한븍극곰3020.10.17

자바스크립트를 for of 와 for in 의 정확한 차이가 뭔가요?

for of 과 for in 가 그냥 코드로 보기엔

큰 차이가 없어보이는데.

for of 와 for in 의 정확한

차이점을 알고싶습니다.

가능하다면 간단한 예시도 하나 주시면

감사하겠습니다.

55글자 더 채워주세요.
답변의 개수
3개의 답변이 있어요!
  • for in 은 사용자가 정의한 객체를 대상으로 하여 순차적으로 반복을 수행하는 것이고 for of 는 자바스크립트에서 제공하는 컬렉션 객체를 대상으로 반복을 수행하는 것입니다. 대표적인 컬렉션 객체에는 배열 등이 있습니다.

    for in

    var obj = { a: 1, b: 2, c: 3 }; for (var prop in obj) { console.log(prop, obj[prop]); // a 1, b 2, c 3 }

    for of

    var iterable = [10, 20, 30]; for (var value of iterable) { console.log(value); // 10, 20, 30 }


  • for of와 for in 반복문의 차이는 for in 반복문의 경우 객체 순환을 탐색하여 반복하고 for of의 경우는 배열 요소를 반복하는 반복문입니다.

    var test = [1,2,3]; 과 같은 배열을 for in과 for of 반복문을 쓰게 되면 for in의 경우 객체의 키 값인 0,1,2 값이 나오며 for of의 경우 배열에 저장된 값인 1,2,3이 출력되게 됩니다.

    그리고 var object = {a: 1, b:2 }; 와 같은 객체를 위의 반복문으로 반복할 경우 for in의 경우 a,b를 출력하지만 for of의 경우는 에러를 출력합니다.


  • 안녕하세요?

    for of 와 for in 의 차이는 object 안의 요소중에 iterable 인지 아닌지의 차이에 따라 다릅니다.

    하나의 object 가 있다고 예를 들어서 보면

    let a = [ 1, 2, 3]

    라고 가정하면 1, 2, 3, 은 array 라서 iterable 합니다. (반복할수 있는)

    이 a 에 필드를 하나 추가해서

    a.test = 'abc' 라고 추가를 하면 a 의 test 는 iterable 하지 않습니다.

    현재 a 의 값은 아래의 이미지에 나타나듯이 [1, 2, 3, test: 'abc'] 입니다.

    이것을 염두해두고

    for in 과 for of 를 비교하면

    위의 결과 이미지 처럼 a 에 있는 iterable 한 요소들만 출력이 되는 반면, for in 은 iterable + non iterable 포함하여 a 에 있는 요소 전부를 출력합니다.

    그럼 도움이 되었으면 좋겠습니다.

    수고하세요.