프로그래밍/Weekly I Learned

2023.09.13 + for of 와 for in

타코코딩 2023. 9. 16. 01:28

iterat

iterator protocol, iterable protocol 포함하여 생성된 내장객체는 순환참조가 가능하다. spread연산자, for..of 사용 할 수 있다. msdn api에서 prototype을 확인함

const strArray = ["바나나", "오렌지", "복숭아"];

for (str of strArray) {
console.log(str);
}

const charArray = "hello,javascript";

for (char of charArray) {
console.log(char);
}

문자열이 iterable protocol 이 적용되어 구현 할 수 있게됨

const tmap = new Map();
tmap.set(0, "test1");
tmap.set(1, "test2");
//[symbol.iterator]
const tmapArray = tmap[Symbol.iterator]();
console.log(tmap.get(1));
//test2 키값 1을가지고있는
for (const ta of tmapArray) {
console.log(ta);
}

for of 와 for in

for of 사용 할 수 있는 이유

어레이는 iterator 프로토콜를 상속받아서 그안의 next함수를 이어받아서 for of를 실행 할 수있습니다.

const tObj = {
name: "홍길동",
age: 20,
};

for (kim of tObj) {
console.log(tObj);
}
// 에러발생
for (kim in tObj) {
console.log(kim);
}
//키값 출력
for (kim in tObj) {
console.log(tObj[kim]);
}
//value 출력