Symbol : ‘유일한 값’을 의미 → map에서 키를 사용할때, key를 이용하면 보안을 높이는데 사용할 수 있음. + 문자열보다는 조금 더 unique함을 보장할 수 있음
MDN Symbol: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol
유일한 키를 생성할 수 있음 🗝
const map = new Map();
// const key1 = 'key'; // 원시타입으로 메모리에 값 자체가 저장되므로,
// const key2 = 'key'; // 같은 값을 가지므로, 하나만 변경해도 같이 변경됨
const key1 = Symbol('key');
const key2 = Symbol('key');
map.set(key1, 'Hello');
console.log(map.get(key2)); // Hello
console.log(key1 === key2) // false
const k1 = Symbol.for('key');
const k2 = Symbol.for('key'); // true
console.log(k1 === k2); // true
console.log(Symbol.keyFor(k1)); // global registery에 저장된 것에 한해서
console.log(Symbol.keyFor(key1)); // local에 저장한 것은 undefined로 반환
const obj = { [k1]: 'Hello', [Symbol('key')]: 1};
console.log(obj);
console.log(obj[k1]);
console.log(obj[Symbol('key')]); // undefined