[JavaScript] for in과 for of의 차이점

요약하면

for in : 객체에 사용 (객체의 모든 열거 가능한 속성에 대해 반복)

for of : 배열에 사용 ([Symbol.iterator] 속성을 가지는 컬렉션 전용)




for in은 보통 객체를 순회하면서 값을 출력할때사용한다. 배열도 객체이기 때문에 위의 코드에서도 순회를하며 값을 출력한다.



하지만 이러한 for in을 사용할 경우 위의 코드와 같이 자신이 가지고있는 않은 값들인 상위에서 추가되어있는 값들까지 출력하기때문에 문제를 발생시킬 수 있다.

즉 출력하고자 하지 않았던 다른 연관되어 있는 값들이 출력될 수 있다. 




for in을 대신하여 for of를 사용하게되면 상위에 값들이 추가되어있다 하더라도 자신을 제외한 나머지 객체들에 대해서는 값을 출력하지 않는다.


추가적으로 for in 과 달리 for of는 문자열을 순회하며 값을 출력할 수 있다.




위와같은 문제점들을 고려해서 배열에서는 for in을 사용하기보다는 for of를 사용하도록 한다.

댓글