[JavaScript] 자바스크립트에서 유일한 데이터 사용하기(심볼)

2022. 8. 9. 12:17Program/JavaScript

269_자바스크립트에서 유일한 데이터 사용하기(심볼)

[적용]

  • 중복되지 않는 데이터를 사용하고 싶을 때
  • 빌트인 객체(Built-in Object)에 독자적인 이름을 사용한 메소드를 생성하고 싶을 때

[문법]

메소드 의미 반환
Symbol(문자열or숫자*) 심볼 생성  심볼

* 생략 가능


[내용]

심볼(Symbol)은 다른 데이터와 중복되지 않는 유일한 값을 사용한다.

이 특성을 이용해 ID를 관리하거나 빌트인 객체에 추가하는 독자적인 메소드 생성이 가능하다.

심볼의 생성은 new가 아닌 Symbol()을 사용한다.

 

JavaScript    

const symbol1 = Symbol();
const symbol2 = Symbol();
console.log(symbol1 == symbol2);  // 결과: false
console.log(symbol1 === symbol2);  // 결과: false

 

심볼의 타입은 symbol이다.

 

JavaScript       

const symbol = Symbol();
console.log(typeof symbol);  // 결과: 'symbol'

 

디버깅에 사용하기 위해 심볼 생성시 값을 전달할 수 있으며,

값을 전달하면 console.log() 등을 통해 심볼을 식별할 수 있다.

 

JavaScript   

const symbol1 = Symbol();
const symbol2 = Symbol();
const symbol3 = Symbol('기린');
const symbol4 = Symbol(49);

console.log(symbol1);
console.log(symbol2);
console.log(symbol3);
console.log(symbol4);

실행결과

symbol3 과 symbol4만 식별이 가능하다

 

심볼은 하나 하나가 유일한 값을 사용하므로 같은 값을 전달해도 두 값의 비교 결과는 다르다.

 

JavaScript   

const symbol1 = Symbol('foo');
const symbol2 = Symbol('foo');
console.log(symbol1 == symbol2);  // 결과: false

 

 


 

 

 

 

 

참조 :
실무에 바로 적용하는 자바스크립트 코드레시피 278
아케다 야스노부, 카노 타케시 지음 / 이춘혁 옮김