본문 바로가기

카테고리 없음

JavaScript 변수선언 및 타입 (6) Data Type (3-7, symbol)

-원시값
3-1, Number 타입 (+NaN)  3-2, String 타입  3-3, Boolean 타입
3-4, Null 타입  3-5, Undefined 타입(+Undeclared) 3-6, BigInt 타입  3-7, Symbol 타입
-객체 (속성의 컬렉션)
3-8, Object

 

자 드디어 마지막 데이터타입 symbol 까지 왔다. 바로 설명으로 넘어가보자.

 

 

 

3-7, Symbol

symbol은 ES6(ECMAScript2015)에서 추가된 원시타입이다.

symbol은 Symbol() 함수로 생성하며, 고유의 값으로 중복되지 않는다. 또한 Dynamic Typing 기능을 제공받지 못한다.

 

JS의 symbol타입

 

JS의 symbol타입, 동등과 일치 (중복확인)

 

위 소스코드를 통해서 확인한 봐와 같이 심볼은 변수에 같은 심볼을 생성해 입력하더라도 그 값들을 같다고 처리하지 않는다.

완벽하게 다른 별게의 symbol이 생성되는 것이다.

그래서 "중복되지 않는다"라는 고유의 특성을 가지고 있는 symbol은 객체의 프로퍼티 키(property key)에 사용된다고 한다.

 

 

 

symbol 값은 리터럴이 없고 Symbol() 함수로만 생성가능하다.

 

다른 타입들과 다르게 

 

심볼은 주로 이름의 충돌 위험이 없는 유일한 객체의 프로퍼티 키(property key), 숨김 프로퍼티 키(hidden property key)를 만들기 위해 사용한다.

 

사용 ㅂ