Map 객체
Map
객체는 키-값 쌍을 저장하며, 키의 타입에 제한이 없습니다. 객체와 달리 Map
은 삽입 순서를 기억합니다.
Map 생성
Map
객체는 new Map()
을 사용하여 생성할 수 있습니다.
let map = new Map();
요소 추가
set
메서드를 사용하여 요소를 추가할 수 있습니다.
map.set('name', 'Alice');
map.set('age', 25);
console.log(map); // Map { 'name' => 'Alice', 'age' => 25 }
요소 접근
get
메서드를 사용하여 요소에 접근할 수 있습니다.
console.log(map.get('name')); // 'Alice'
console.log(map.get('age')); // 25
요소 삭제
delete
메서드를 사용하여 요소를 삭제할 수 있습니다.
map.delete('age');
console.log(map); // Map { 'name' => 'Alice' }
요소 확인
has
메서드를 사용하여 키가 존재하는지 확인할 수 있습니다.
console.log(map.has('name')); // true
console.log(map.has('age')); // false
모든 요소 삭제
clear
메서드를 사용하여 모든 요소를 삭제할 수 있습니다.
map.clear();
console.log(map); // Map {}
요소 개수
size
속성을 사용하여 요소의 개수를 확인할 수 있습니다.
let map = new Map();
map.set('name', 'Alice');
map.set('age', 25);
console.log(map.size); // 2
순회
forEach
메서드나 for...of
루프를 사용하여 Map
의 요소를 순회할 수 있습니다.
map.forEach((value, key) => {
console.log(key + ': ' + value);
});
// 출력:
// name: Alice
// age: 25
for (let [key, value] of map) {
console.log(key + ': ' + value);
}
// 출력:
// name: Alice
// age: 25
Set 객체
Set
객체는 고유한 값을 저장하며, 값의 타입에 제한이 없습니다. 중복된 값은 저장되지 않습니다.
Set 생성
Set
객체는 new Set()
을 사용하여 생성할 수 있습니다.
let set = new Set();
요소 추가
add
메서드를 사용하여 요소를 추가할 수 있습니다.
set.add(1);
set.add(2);
set.add(2); // 중복된 값은 무시됩니다.
console.log(set); // Set { 1, 2 }
요소 삭제
delete
메서드를 사용하여 요소를 삭제할 수 있습니다.
set.delete(2);
console.log(set); // Set { 1 }
요소 확인
has
메서드를 사용하여 값이 존재하는지 확인할 수 있습니다.
console.log(set.has(1)); // true
console.log(set.has(2)); // false
모든 요소 삭제
clear
메서드를 사용하여 모든 요소를 삭제할 수 있습니다.
set.clear();
console.log(set); // Set {}
요소 개수
size
속성을 사용하여 요소의 개수를 확인할 수 있습니다.
let set = new Set();
set.add(1);
set.add(2);
console.log(set.size); // 2
순회
forEach
메서드나 for...of
루프를 사용하여 Set
의 요소를 순회할 수 있습니다.
set.forEach(value => {
console.log(value);
});
// 출력:
// 1
// 2
for (let value of set) {
console.log(value);
}
// 출력:
// 1
// 2
WeakMap 객체
WeakMap
은 Map
과 유사하지만, 키가 반드시 객체여야 하며 가비지 컬렉션의 대상이 됩니다.
WeakMap 생성
let weakMap = new WeakMap();
요소 추가
set
메서드를 사용하여 요소를 추가할 수 있습니다.
let obj = {};
weakMap.set(obj, 'value');
요소 접근
get
메서드를 사용하여 요소에 접근할 수 있습니다.
console.log(weakMap.get(obj)); // 'value'
요소 삭제
delete
메서드를 사용하여 요소를 삭제할 수 있습니다.
weakMap.delete(obj);
console.log(weakMap.get(obj)); // undefined
요소 확인
has
메서드를 사용하여 키가 존재하는지 확인할 수 있습니다.
console.log(weakMap.has(obj)); // false
WeakSet 객체
WeakSet
은 Set
과 유사하지만, 값이 반드시 객체여야 하며 가비지 컬렉션의 대상이 됩니다.
WeakSet 생성
let weakSet = new WeakSet();
요소 추가
add
메서드를 사용하여 요소를 추가할 수 있습니다.
let obj = {};
weakSet.add(obj);
요소 삭제
delete
메서드를 사용하여 요소를 삭제할 수 있습니다.
weakSet.delete(obj);
console.log(weakSet.has(obj)); // false
요소 확인
has
메서드를 사용하여 값이 존재하는지 확인할 수 있습니다.
console.log(weakSet.has(obj)); // false
결론
Map
과 Set
객체는 고유한 데이터 구조를 제공하여 키-값 쌍과 고유한 값들을 효율적으로 관리할 수 있게 해줍니다. WeakMap
과 WeakSet
객체는 메모리 관리에 유용합니다. 이번 글에서는 Map
, Set
, WeakMap
, WeakSet
객체의 생성, 요소 추가 및 삭제, 확인, 순회 방법에 대해 배웠습니다. 다음 글에서는 모듈에 대해 알아보겠습니다.
다음 글에서 만나요!
'JavaScript 문법 시리즈' 카테고리의 다른 글
[JavaScript 문법] 15일차: this 키워드 이해하기 (0) | 2024.08.15 |
---|---|
[JavaScript 문법] 14일차: 모듈 (1) | 2024.08.14 |
[JavaScript 문법] 12일차: ES6 클래스 (0) | 2024.08.12 |
[JavaScript 문법] 11일차: 배열 고급 (0) | 2024.08.11 |
[JavaScript 문법] 10일차: 배열 기초 (0) | 2024.08.10 |