[javascript] 맵의 키값과 셋의 값의 속성 제약

자바스크립트에서 맵과 셋은 유용한 데이터 구조로 사용됩니다. 하지만 맵의 키값과 셋의 값에는 제약이 있습니다. 이 포스트에서는 이러한 제약에 대해 알아보겠습니다.

맵의 제약

맵의 키는 객체프리미티브 값으로만 가능합니다. 이는 객체 레퍼런스만 키로 사용할 수 있다는 것을 의미합니다. 따라서 함수나 심볼 같은 원시 데이터는 맵의 키로 사용될 수 없습니다.

또한 NaN 값도 맵의 키로 사용할 수 있지만, NaN 값을 검색하려면 get(NaN)을 사용해야 합니다.

let map = new Map();
let key1 = {};
let key2 = {};
map.set(key1, "value1");
map.set(key2, "value2");

console.log(map.get(key1)); // "value1"
console.log(map.get(key2)); // "value2"

셋의 제약

셋의 값은 유일한 값만을 가집니다. 따라서 동일한 값을 여러 번 추가하더라도 중복된 값은 저장되지 않습니다.

let set = new Set();
set.add(1);
set.add(2);
set.add(1);
console.log(set); // Set { 1, 2 }

결론

맵과 셋은 다양한 용도로 활용될 수 있지만, 맵의 키값과 셋의 값에는 위와 같은 제약이 있습니다. 이러한 제약을 이해하고 활용하여 적절히 활용하는 것이 중요합니다.

더 많은 정보는 MDN Web Docs - MapMDN Web Docs - Set를 참고하세요.