자바스크립트 Symbol이란 무엇인가?

Photo of author

By tutor

자바스크립트 Symbol이란 무엇인가?

자바스크립트 Symbol이란 무엇인가?

 

자바스크립트 Symbol이란?

Symbol이란 무엇인가?

자바스크립트는 기본 데이터 타입으로 boolean, null, undefined, number, string, symbol을 제공합니다. 그 중, symbol은 유일하고 변경 불가능한 원시값입니다.

 const mySymbol = Symbol('mySymbol');
 console.log(typeof mySymbol); // symbol 

위 코드에서 새로운 Symbol을 만들 때, 인자로 전달된 mySymbol은 심볼의 설명(description)입니다. 이 설명은 Symbol에 대한 디버깅 시 사용됩니다.

심볼의 유일성

심볼은 유일합니다. 동일한 설명으로 두 개의 Symbol을 만들면, 서로 다른 두 값을 갖습니다.

 const symbolA = Symbol('mySymbol');
 const symbolB = Symbol('mySymbol');
 console.log(symbolA === symbolB); // false 

그래서 확실하게 유일성을 보장해야 하는 경우, Symbol을 사용할 수 있습니다.

심볼의 활용

Symbol은 객체 리터럴 속성 이름으로 사용될 수 있습니다. 이 경우, 속성 이름이 유일한 값임을 보장합니다.

 const myObj = {
   [Symbol('mySymbol')]: 'Hello, World'
 };
 console.log(Object.getOwnPropertyNames(myObj)); // [] 

위 코드에서 Object.getOwnPropertyNames()를 사용하면, 클래스 인스턴스처럼 리터럴 객체의 Symbol 속성에 대한 결과를 가져올 수 있습니다.

다음은 전역 심볼 레지스트리를 사용하여 전역 숌별자를 가져올 수 있는 예시입니다.

 const mySymbol = Symbol.for('mySymbol');
 console.log(mySymbol === Symbol.for('mySymbol')); // true 

Symbol.for는 주어진 Symbol이 레지스터리에 등록되어 있으면, 해당 Symbol을 반환하며, 아니면 등록 후 반환합니다.

결론

자바스크립트 Symbol은 고유하고 변경 불가능한 값입니다. 다중의 개체에서 속성 이름으로 사용할 때 유용합니다. 이를 활용하면 다양한 목적으로 사용됩니다.

자바스크립트 Symbol