본문 바로가기

WEB/JavaScript

[JS] for in, for of 문?

for in 문

for in문은 for문가 다르게 동작하는 반복문이다. C#의 foreach와 같은 기능을 하는 구문인 것 같다.

 

var arr = [1, 2, 3];

for (var i = 0; i < arr.length; i++) { // 배열 arr의 모든 요소의 인덱스(index)를 출력함.
    document.write(i + " ");
}

 

 

var arr = [1, 2, 3];

for (var i in arr) { // 위와 같은 동작을 하는 for / in 문
    document.write(i + " ");
}

 

for에 들어가는 인자 형태가 서로 다르다.

for / in 문은 해당 객체의 모든 열거할 수 있는 프로퍼티(property)를 순회할 수 있도록 해준다.

 

for of 문

for / of 문은 반복할 수 있는 객체(iterable objects)를 순회할 수 있도록 해주는 반복문입니다.

 

자바스크립트에서 반복할 수 있는 객체에는 Array, Map, Set, arguments 객체 등이 있습니다.

이 반복문은 루프마다 객체의 열거할 수 있는 프로퍼티의 값을 지정된 변수에 대입합니다.

 

for in문 문법은 동일하지만 순회하는 대상에 차이가 있다.

이런식으로 for of 문은 Set 객체를 순회할 수 있지만 for in문은 객체를 순회할 수 없다.

 

var arr = new Set([1, 1, 2, 2, 3, 3]);

for (var value of arr) {
    document.write(value + " ");
}