Map ?
es6에 추가된 자료형으로 Object와 비슷하지만 크게 다른점으로는
1. 순서가 있음
2 iterable 함
3. key값에 string값이 아닌 다른 타입이 들어갈 수 있음
4. 크기를 쉽게 알 수 있음
이렇게 있습니다.
그럼 위와 같은 Map이 주는 장점들로 인해 항상 Object보단 Map을 사용하는것이 좋을까요?
그렇지는 않습니다.
Object는 데이터를 저장하기 위한 굉장히 간단한 구조입니다. 그렇기 때문에 key값이 string인 간단한 데이터를 저장하기 위해서는 생성이 굉장히 쉽습니다. 또한 JSON으로 데이터를 어딘가에 전송해야 할 경우에는 Object를 사용해야합니다. Map은 아직 JSON으로 변환 되어 전달되지 않기 때문입니다.
그러나 Map은 Hash구조로 Object보다 순환이 빠르기 때문에 데이터를 추가하거나 수정하는 것이 빈번 할 경우 Map을 쓰는것이 좋습니다.
Map의 사용
map은 생성자를 이용하여 생성합니다.
const wrongMap = new Map()
set(key, value) 메서드를 이용하여 데이터를 set하고, has 메서드로 입력한 key에 해당하는 데이터 보유 유무를 확인합ㄴ디ㅏ. 또한 get 메서드를 이용하여 입력한 key에 대한 value를 얻을 수도 있습니다.
contacts.set('Jessie', {phone: "213-555-1234", address: "123 N 1st Ave"})
contacts.has('Jessie') // true
contacts.get('Hilary') // undefined
delete메서드를 이용하여 입력한 key에 해당하는 데이터를 지울수도 있으며
size메서드로 map의 크기도 알 수 있습니다.
contacts.delete('Raymond') // false
Set과 마찬가지로 Map은 Map이외에 WeakMap이라는 자료형도 있습니다.
이 자료형은 마찬가지로 iterable 하지 않으며, 참조카운팅을 추가 하지도 않습니다.
WeakMap은 WeakSet과 달리 사용성이 좋은걸로 알고있으나.. 저는 사용해본적이 없어 사용할 일이 생긴다면 사용해보고 정리하여 따로 포스팅 하겠습니다.
'프론트엔드 > javascript' 카테고리의 다른 글
[javascript] 자바스크립트 실행 컨텍스트 (0) | 2022.04.11 |
---|---|
[javascript] Set ? (0) | 2022.02.03 |
[javascript] Event.preventDefault() 란? (0) | 2022.01.12 |
[javascript] Array map, filter, reduce 사용법 (0) | 2022.01.10 |
[javascript] setTimeout 자세히알기(2) 부제: 자바스크립트 런타임 (0) | 2022.01.06 |