[JavaScript] 04. Symbol

SSOYEONG·2022년 7월 25일
0

자바스크립트 기초

목록 보기
3/11
post-thumbnail

Symbol

  • 유일성 보장
const a = Symbol();		// new를 붙이지 않는다
const b = Symbol();

console.log(a);		// Symbol()
console.log(b);		// Symbol()
console.log(a===b); 	// false

const id = Symbol('id');	// 설명을 붙여줄 수 있음

const user = {
  name: 'Mike',
  age: 30,
  [id]: 'myid'
}

Object.keys(user);	// ["name", "age"]
// key가 Symbol형인 경우 건너 뛴다.
  • 원본 데이터는 건들이지 않고 자신만의 속성을 추가할 때 사용

Symbol.for()

  • 전역 심볼
  • 하나의 심볼만 보장받을 수 있음
  • 없으면 만들고, 있으면 가져오기 때문
const id1 = Symbol.for('id');
const id2 = Symbol.for('id');
console.log(id1 === id2);		// true

Symbol.keyFor(id1)	// id

// 전역 심볼이 아닐 경우 keyFor 대신 description 사용
const id = Symbol('id입니다');
console.log(id.description);	// id입니다

// 숨겨진 Symbol key 보는 법
const id = Symbol('id');
const user = {
  name: 'Mike',
  age: 30,
  [id]: 'myid'
}

Object.getOwnPropertySymbols(user);		// [Symbol(id)]
Reflect.ownKeys(user);		// ["name", "age", Symbol(id)]
profile
Übermensch

0개의 댓글