4. 심볼(Symbol)

마조리카·2023년 6월 8일
0

마조리카의 js 정리

목록 보기
4/11

js에서 객체의 프로퍼티의 키를 가져오면 문자형으로 가져와진다.

//프로퍼티 키 문자형
const obj = {
  1 : '1입니다';
  false : '거짓',
}

Object.keys(obj) // ["1", "false"]

Symbol

심볼은 유일한 식별자를 생성할때 사용합니다

const a = Symbol('설명'); //new를 붙이지 않는다!
const b = Symbol('설명');

a == b //false
a === b //false

//심볼의 설명 거져오는 방법
a.description; //'설명'
프로퍼티 키 심볼형
const id = Symbol('id')
const user = {
  name: 'Mike',
  [id] : 'myid'
}
//{name: 'Mike', Symbol(id): 'myid'}
//user[id] -> 'myid

심볼 프로퍼티는 은닉된다.
Object.(keys, values, entries)
for(let a in user){}

전역 심볼 Symbol.for()

  • 하나의 심볼만 보장받을 수 있음
  • 없으면 만들고, 있으면 가져오기 떄문
  • Symbol 함수는 매번 다른 Symbol 값을 생성하지만,
  • Symbol.for 메소드는 하나를 생선한 뒤 키를 통해 같은 Symbol을 공유
const id1 = Symbol.for('id');
const id2 = Symbol.for('id');

id1 === id2; //true

//전역 심볼의 설명을 가져오는 방법
Symbol.keyFor(id1); // 'id'

숨겨진 심볼을 보는법

Object.getOwnPropertySymbol(user)
// [Symbol(id)]

Reflect.ownKeys(user)
// ["name", Symbol(id)]

0개의 댓글