러닝 자바스크립트 스터디 자료 - CHAPTER 10. 맵과 셋

ES6에서 도입 키와 값을 연결한다는 점에서 객체와 비슷
중복을 허용하지 않는다는 점만 제외하면 배열과 비슷

키와값을 연결할때 객체를 사용하면 발생하는 단점

프로토타입 체인 때문에 의도하지 않은 연결이 생길 수 있다.
객체 안에 연결된 키와 값이 몇 개나 되는지 쉽게 알아낼 수 있는 방법이 없다.
키는 반드시 문자열이나 심볼이어야 하므로 객체를 키로 써서 값과 연결 할수 없다.
객체는 프로퍼티 순서를 전혀 보장하지 않는다.
Map 객체는 이들 결함을 모두 해결, 키와 값을 연결할 목적이라면 객체보다 나은 선택이다.

set()메서드를 써서 사용자 역할을 할당
역할을 알아볼때는 get()메서드
맵에 존재하지 않는 키에 get을 호출하면 undefined를 반환한다.
맵에 키가 존재하는지 확인하는 has()메서드
맵에 이미 존재하는 키에 set()을 호출하면 값이 교체
size프로퍼티는 맵의 요소 숫자를 반환
keys()메서드는 맵의 키를 반환
values()메서드는 값을 반환
entries()메서드는 첫 번째 요소가 키이고 두 번째 요소가 값인 배열을 각각 반환

이터러블 객체보다 배열이 필요하다면 확산연산자(…)를 사용
맵의 요소를 지울때는 delete()메서드
맵의 요소를 모두 지울때는 clear()메서드

위크맵

다음 차이점을 제외하면 Map과 완전히 같다.
키는 반드시 객체여야 한다.
WeekMap의키는 가비지 콜렉션에 포함될 수 있다.
WeekMap은 이터러블이 아니며 clear() 메서드도 없다.

셋은 중복을 허용하지 않는 데이터 집합이다.

사용자역할을 추가할 때는 add()메서드 - 추가하려는 것이 이미 있다면 아무일도 일어나지 않는다.

size프로퍼티는 셋의 요소 숫자를 반환
역할을 제거할 때는 delete()메서드 - 제거에 성공하면 true를 반환, 그렇지 않다면 false를 반환

위크셋

위크셋은 객체만 포함 할 수 있다. 가비지 콜렉션의 대상이된다.
이터러블이 아니다. 위크셋의 실제 용도는 주어진 객체가 셋안에 존재하는지 아닌지를 알아보는 것 뿐이라고 해도 과언이 아니다.

# map, set, ,

댓글

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×