JS 코딩테스트

[JS hash] object vs Map vs Set 차이

Nuri-KSLV-II 2025. 9. 23. 22:50

Object vs Map vs Set

Object

const obj = {};
obj.key = 'value';
obj['key2'] = 'value2';

// 특징
- 키: 문자열 또는 Symbol만 가능
- 프로토타입 체인 존재 (기본 메서드들 상속)
- 순서 보장 안 됨 (ES2015 이후 일부 보장)

Map

const map = new Map();
map.set('key', 'value');
map.set(1, 'number key');
map.set(obj, 'object key');

// 특징  
- 키: 모든 타입 가능 (객체, 원시값 모두)
- 크기: map.size
- 순서: 삽입 순서 보장
- 순수한 해시맵 (프로토타입 오염 없음)

Set

const set = new Set();
set.add('value1');
set.add('value2');

// 특징
- 값의 유일성 보장 (중복 제거)
- 키-값이 아닌 값만 저장
- 순서: 삽입 순서 보장