[데이터 타입] 🎯 Symbol 타입이 뭔가요?

Mec.D's Blog·2022년 6월 6일
0

JS 기술면접

목록 보기
15/34
post-thumbnail

📋 기술 면접 홈 바로가기


⬛ 개념

💡 Symbol

변경 불가능하며 중복되지 않는 유일무이한 값을 보장하는 기본형 데이터 타입입니다.

const s1 = Symbol('설명');
console.log(s1.description); // 설명

💡 전역 Symbol 레지스트리

생성된 Symbol 값을 관리하는 저장소입니다.

  • Symbol.for(), Symbol.keyFor() 메서드로 접근할 수 있습니다.

⬛ 용도

  1. ⬛ 객체의 프로퍼티 Key로 사용됩니다.

  2. ⬛ 다른 언어의 Enum을 흉내낼 때 사용합니다.
    (Object.freeze( ) 와 Symbol을 이용해 Enum을 흉내낼 수 있습니다.)

  3. ⬛ JS의 표준 빌트인 객체에 프로퍼티를 추가할 때 사용합니다.
    (똑같은 이름의 프로퍼티가 중복 추가되면 안 되기 때문입니다.)


⬛ 특징

  1. ⬛ 이름이 충돌할 위험이 없습니다.

  2. ⬛ 프로퍼티를 은닉할 수 있습니다.
    for .. in 또는 Object.keys( ) 등으로 접근할 수 없기 때문입니다.

  3. ⬛ 값에 대한 설명 (description) 을 추가할 수 있습니다.

  4. ⬛ 생성된 Symbol 값을 외부에서는 알 수 없습니다.

  5. ⬛ Symbol.프로퍼티 호출 시 래퍼 객체가 임시 생성됩니다.


⬛ 관련 메소드

  1. ⬛ Symbol.for('키')로 전역 Symbol 레지스트리에서 키에 해당하는 Symbol 값을 검색할 수 있습니다.

  2. ⬛ Symbol.keyFor(심볼) 은 심볼의 key를 추출합니다.

profile
기술로 삶을 디자인하는 개발자 Mec.D 입니다

0개의 댓글