JavaScript는 6개의 원시 타입(Number, String, null, undefined, Boolean, Symbol)과 1개의 객체 타입(Object)를 가지고 있으며, 심볼(Symbol) 타입도 6개의 원시 타입 중 하나로 ES6에서 추가 되었다.
Symbol이란?
객체의 속성 키(Property Key)를 고유하게 설정하여, 속성 키의 충돌을 방지하기 위해서 사용된다.
Symbol의 생성
Symbol은 함수 Symbol()를 통해 생성한다.
const symbol1 = Symbol()
const symbol2 = Symbol("Hello")
console.log(symbol1) //Symbol()
console.log(symbol2) //Symbol(Hello)
Symbol은 유일성이 보장되는 자료형이라 같은 문자열을 넣어도 다른 값이 나온다.
const a = Symbol()
const b = Symbol()
a == b ? console.log("true") : console.log("false") //false
const c = Symbol("Hello")
const d = Symbol("Hello")
c == d ? console.log("true") : console.log("false") //false
Symbol의 사용
객체의 키는 고유성을 가지고 있어야 하기에, 유일성을 보장되는 Symbol를 키 값으로 사용 할 수 있다.
const obj = {}
const a = Symbol()
const b = Symbol()
obj.a = "Hello"
obj.b = "GoodBye"
console.log(obj) // {Symbol(): 'Hello', Symbol(): 'GoodBye'}
console.log(obj.a) // Hello
console.log(obj.b) // GoodBye
'F.E > JavaScript' 카테고리의 다른 글
[JavaScript] 이터러블(interable), 이터레이터(iterator), 제네레이터(Generator) (0) | 2022.08.19 |
---|---|
[JavaScript] 정규식에 대해 알아보자 (0) | 2022.08.14 |
[JavaScript] 리스트 순회, for문, for of문, for in문, for each문 (0) | 2022.08.09 |
[JavaScript] JS 표준 내장 객체, Map (0) | 2022.06.11 |
[JavaScript] JS 표준 내장 객체, SET (0) | 2022.06.11 |