기존 리스트 순회
const list = [1, 2, 3];
for( var i = 0; i< list.length; i++){
log(list[i]);
}
/*유사 배열 순회*/
const str = 'abc';
for( var i = 0; i< str.length; i++){
log(str[i]);
}
변경된 리스트 순회
for(const a of list){ //for of로 리스트 안에 있는 값(a)을 순회한다.
log(a);
}
for(const a of str){
log(a);
}
이터러블/이터레이터 프로토콜
: Array, Set, Map모두 for...of를 사용하면 Symbol.iterator를 반환하고여 next()를 통해 value를 순회한다.
Array를 통해 알아보기
const arr = [1, 2, 3];
for(const a of arr) log(a);
Set를 통해 알아보기
const set = new Set([1,2,3]);
for(const a of set) log(a);
Map를 통해 알아보기
const map = new Map([['a',1], ['b', 2], ['c', 3]]);
for (const a of map)log(a)
map이 아닌 map.values(), map.keys(), map.entries()역시 정상동작을 하는데, 이는 해당 함수를 통해 반환되는 값들도 Iterator 형태임을 알 수 있다.
: Array, Set, Map은 Javascript 내장객체로써 이터러블/이터레이터 프로토콜을 따른다.
이터러블