
이 글은 코드팩토리님의 JavaScript 문법강의를 본 후 정리한 글입니다.
Symbol 타입은 유일무이한 값을 생성할 경우 사용하는 타입입니다. 그리고 다른 프리미티브 타입과 다르게 Symbol 함수를 호출해서 사용합니다. Symbol 타입의 데이터를 선언해보겠습니다.
const symbol = Symbol(1);
> Symbol(1)
이렇게 선언한 Symbol 은 유일무이한 값입니다. 어떻게 알 수 있을까요? 간단하게 예를 들겠습니다. num1과 num2 모두 1로 선언하겠습니다. 이 값은 동일합니다.
const num1 = 1;
const num2 = 1;
console.log(num1 === num2);
>> true
이 값은 서로 동일한 1이라는 값을 가지고 있기 때문에 비교연산을 사용하면 true를 반환하는 것을 알 수 있습니다. 그렇다면 Symbol은 어떨까요?
const symbol1 = Symbol(1);
const symbol2 = Symbol(1);
console.log(symbol1 === symbol2);
>> false
이 값은 동일한 1이라는 값을 갖고 있지만, 각각의 Symbol은 유일무이한 값이기 때문에 비교연산을 해도 false를 반환하게 됩니다.