목차

1️⃣ Iterable Object

2️⃣ Iterator

3️⃣ Generator

1️⃣ Iterable Object

const arrayObject = [1, 2, 3];

for (let val of arrayObject) {
	console.log(val);
}
// 1
// 2
// 3

const mapObject = new Map([["name","Shin"],["age",29]]);

for (let key of mapObject) {
	console.log(key)
}
// (2) ['name', 'Shin']
// (2) ['age', 29]

const setObject = new Set("IVE");

for (let val of setObject) {
	console.log(val)
}
// I
// V
// E

// 위에서 쓴 배열, Map 객체, Set 객체 모두 for...of 문으로 표현이 가능하므로 Iterable이다.

const normalObject = {"name":"Ahn", "age": 21}

console.log(Symbol.iterator in normalObject) // false - 일반 객체
console.log(Symbol.iterator in arrayObject) // true - Iterable
console.log(Symbol.iterator in mapObject) // true - Iterable
console.log(Symbol.iterator in setObject) // true  - Iterable
for (let letter of "글자입니다") {
    console.log(letter)
} // 글 자 입 니 다

2️⃣ Iterator