es6 for in

2018-03-21
var data = [1, 2, undefined, NaN, null, ""];
for(let idx in data){
  console.log(data[idx]); // 1, 2, undefined, NaN, null, ""
}

for in은 주로 객체(object)를 순회할때 사용한다.

하지만 배열도 객체의 일종이기 때문에 순회가 가능하다.

for in을 사용했을 경우 자기 자신이 가지고 있지 않은 상위의 추가된 값 까지도 출력한다는 단점을 가지고 있다.

var data = [1, 2, undefined, NaN, null, ""];
Array.prototype.getIndex = function(){};
for(let idx in data){
  console.log(data[idx]); // 1, 2, undefined, NaN, null, "", function(){}
}
// function까지 출력된다

따라서 배열은 for in을 사용해서 순회하는 방법은 피하고 for of를 사용해서 순회하자.

var data = [1, 2, undefined, NaN, null, ""];
Array.prototype.getIndex = function(){};
for(let value of data){
  console.log(value); // 1, 2, undefined, NaN, null, ""
}

String을 Char 단위로 순회하려 할때도 유용하게 사용 가능하다.