for ([초기문]; [조건문]; [증감문])
문장
for( thing in obj ){
...
}
⇒ 객체의 키 순회에 사용. 하지만 좋은 방법은 아님. (왜냐면 메소드같은것도 순회하기 때문에)
Object.keys(obj)를 사용해서 배열로 순회하는게 좋다고 한다. 그럼 언제써? 확실하게 메소드 없을때 쓰면 되나?? (주의할 점은 얘가 배열을 리턴하기 때문에 배열용 순회를 써주어야 한다. 즉 for( const prop of Obejct.keys(obj)) 이런식으로 ㅇㅇ.for(const elem of iterable_obj ){
...
}
⇒ 배열과 NodeList 는 물론 Map, Set등을 포함한 iterable object에 대한 순회에 사용 가능
value and index ⇒ ES6’s Array.prototype.entries() 사용하면 편하다
for (const [i, value] of myArray.entries()) {
console.log('%d: %s', i, value);
}
아 그리고 let, var, const 같은거 까먹지 말자. 뭔소리냐면 예를 들면 for … of 에서는 그냥 elem을 하는게 아니라 보통 당연히 const elem 이런 식으로 해줘야 된다.
arrow function과 쓰면 편함.
“진짜” array에만 사용할 수 있음. 유사 배열, 예를 들어서 document.getElementsByClassName()은 HTMLCollection이라고 하는 array-like object를 리턴하는데, 이런 애들은 짭 array이기 때문에 .forEach()를 쓸 수 없음. 쓰려면 Array.from()같은걸로 array로 바꿔서 써야함(물론 이러면 복사가 발생하겠지).
forEach() 안에서는 break를 할 수 없음.
value and index
var myArray = [123, 15, 187, 32];
myArray.forEach(function (value, i) {
console.log('%d: %s', i, value);
});