Tech Blog of Pinomaker
Published 2022. 8. 9. 11:15
[JavaScript] Symbol(심볼) F.E/JavaScript

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
profile

Tech Blog of Pinomaker

@pinomaker

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!