iterable 3

iterable, iterator

iterable은 요소를 순회하거나, 스프레드를 통해 얕은 복사를 하고, 디스트럭쳐링을 할 수 있기 때문에 유용한 타입이다. 메서드를 통해 이터러블 타입으로 변경을 할 수 있지만, 직접 이터러블의 객체를 만들 수 있다. 이터러블을 만들기 위해선 이터러블 규약을 지켜서 작성 해 주면 된다. ⚪ 이터러블 규약(iterable protocol) Array, String, Set, Map을 살펴보면, 내부에 [Symbol.iterator]함수가 있다. 이 함수는, 객체를 반환하는데, next() 라는 함수를 가지고 있다. next함수는 객체를 반환하는데, 반환된 객체는 value, done의 프로퍼티를 가지고 있다. ⭐ [Symbol.iterator] () : 객체반환(iterator 라고 부름) 객체(iter..

TIL/JS 2023.03.29

Map

Map은 Set과 함께 new 연산자를 통해 생성 할 수 있다. 초기에 배열로 감싸서 다수의 인자를 전달 할 수 있으며, [key, value]를 세트로 전달 해야 한다. Map.prototype.methods ⚪ set() 데이터를 추가 하는 함수이다. Set에서는 add를 사용하지만 Map에서는 set을 사용한다. 인자를 key, value로 전달 하는데, key만을 전달 할 경우 value는 undefined인 상태로 담긴다. set이 된 결과를 반환하기 떄문에 메서드 체이닝이 가능하다. 즉슨, 참조형 데이터 이기 때문에(Map 자체가 object) 변경하면 원본도 함께 변경된다. ⚪ get() Map에 해당 key가 있는 여부에 대해 불리언으로 반환한다. Set에는 has가 사용되지만 Map에는 ..

TIL/JS 2023.03.28

Set

Set에 관해 몇번 째 작성하는 블로그인지 모르겠다. 지식이 축적되면서 보이지 않던것이 보이는 거겠지..? 🤧 Set의 type은 object이다. 어찌보면 당연한 얘기이다. 배열의 type도 object이고, prototype이 Array이기 때문이다. Set의 prototype도 배열처럼 Set을 prototype으로 갖고 있는다. 즉슨, Set의 instance이다. Set은 객체의 형태로 담기며{}, 배열의 특징과 유사하다. 객체처럼 생겼으나, 배열과 비슷하다. Set은 중복 된 값을 같지 않는다. 하지만, 원시형 데이터 타입이 아닌 참조형 데이터 타입일 경우, 주소값이 담기기 때문에 중복되어 Set에 담길 수 있다. 하지만 값을 꺼내보거나, 수정, 삭제는 불가능하다. 밖에서 객체와 같은 값으로 ..

TIL/JS 2023.03.28