Bin's Blog

Symbol 본문

JavaScript

Symbol

hotIce 2023. 5. 19. 09:32
728x90

ES6부터 새롭게 추가된 타입인 Symbol에 대해서 알아보자.

 

고유성이라는 단어가 Symbol의 핵심 단어이다. 예를 들어, 학교에서 학생들이 같은 유니폼을 입어도 그들 자신만의 고유한 이름을 가지고 있어서 선생님은 이름을 통해 학생을 구별할 수 있다. 

 

Symbol은 자바스크립트에서 고유하고 변경할 수 없는(immutable)한 데이터 타입이다. 즉, 한 번 생성된 Symbol은 다른 어떤 Symbol과도 완전히 다른 고유한 값을 가지게 된다. Symbol 함수를 호출할 때마다 새로운, 고유한 Symbol 값을 생성한다. 그래서 Symbol은 주로 객체의 키(key)로 사용되며, 이를 통해 객체 내에서 고유한 속성을 보장한다. 객체는 무엇일까? 여러 가지 정보를 담을 수 있는 일종의 상자이며, 이 정보들을 가리키는 이름이 바로 "키(key)"입니다.

 

자바스크립트의 Symbol은 객체 내에서 키가 서로 겹치지 않도록, 즉 각각의 키가 고유하게 유지되도록 도와주는 역할이다. 

 

- 예시 코드

let symbol1 = Symbol();
let symbol2 = Symbol();

// 동일한 설명을 가진 두 개의 Symbol을 만들어도, 그들은 서로 다른 고유의 값이다.
let symbol3 = Symbol("설명");
let symbol4 = Symbol("설명");

// false;
console.log(symbol3 === symbol4);


// 객체에 Symbol을 키로 사용하여 고유한 속성을 추가한다.

let student = {};

student[symbol1] = "Alice";
student[symbol2] = "Bob";

// Alice
console.log(student[symbol1]);
// Bob
console.log(student[symbol2]);

student[symbol1]과 student[symbol2]는 서로 다른 값을 가지게 된다. symbol3과 symbol4도 다른 값을 가지게 된다. 이게 바로 Symbol의 고유성을 잘 보여준다.

728x90

'JavaScript' 카테고리의 다른 글

some 메서드  (0) 2023.05.25
call, apply, bind 메서드  (0) 2023.05.24
Promise  (0) 2023.05.18
비동기  (0) 2023.05.17
this(전역 공간)  (0) 2023.05.16