const a = Symbol(); // new를 붙이지 않습니다!
const b = Symbol(); // a===b false / a==b false
const id = Symbol('id') // () 안에 설명을 붙여주면 디버깅 할때 편함
const id2 = Symbol('id') // id === id2 false / id == id2 false
*특정 데이터에 원본을 건드리지 않고 속성 추가가 가능합니다. 또한 다른 사람 객체에 나만의 속성을 넣을때 사용 합니다.
const id = Symbol('id);
const user = {
name: 'Mike',
age: 30,
[id] : 'myid'
}
Object.keys(user) // 심볼형 프로퍼티 나오지 않음
하나의 심볼만 보장받을 수 있음
없으면 만들고, 있으면 가져오기 때문
*Symbol 함수는 매번 다른 Symbol 값을 생성하지만, Symbol.for 매소드는 하나를 생성한 뒤 키를 통해 같은 Symbol을 공유
const id1 = Symbol.for('id');
const id2 = Symbol.for('id');
id1 === id2; <- true