1. 심볼 튜토리얼 - https://ko.javascript.info/symbol
유일한 식별자(unique identifier)를 만들고 싶을 때 사용되는 ES6 자료형이다. 리액트에서 가상돔을 관리할때도 쓰고 있는 것으로 여러모로 유용하다. 기본적으로 심볼은 동일한 ID로 선언해도 다른 식별키가 되어서 해당 키를 저장해둔 변수를 통해서만 접근 가능하며, 특정 메소드들을 제외하고는 자바스크립트 내부에서 심볼을 확인 할 수 없기에 슈퍼셋이나
전역에 영향을 주지 않는 방식으로 기능을 추가하거나, 식별 할 수 있다는게 가장 큰 장점으로 보인다.
물론 전역 심볼로 굳이 따로 자료형에 저장하지 않는 방식도 유용해보인다.
# 사용법
1. 심볼은 Symbol(key)로 선언한다.
2. 전역 심볼은Symbol.for(key)이나 Symbol.keyfor(key)를 사용하고
3. Object.getOwnPropertySymbols(obj), Reflect.ownKeys(obj) 심볼에 접근 할 수 있는 두가지 메서드
# 결론
객체에 숨긴 프로퍼티를 만들거나, 유니크한 식별키들이 필요한 경우 유용하다. 객체 내부에서 선언하고 사용할 경우
[] 괄호를 통해서 접근하고 선언한다. 또 시스템 심볼들로 자주 쓰이는 것들이 여럿 있다.
- Symbol.hasInstance
- Symbol.isConcatSpreadable
- Symbol.iterator
- Symbol.toPrimitive
반응형
'개발 > TTL' 카테고리의 다른 글
[JS][자바스크립트] N진수변환 (0) | 2021.07.23 |
---|---|
[JS][자바스크립트]워크맵과 워크셋 (0) | 2021.07.05 |
[JS][자바스크립트]맵과 셋 (0) | 2021.07.01 |
[JS][자바스크립트] iterable 객체 (0) | 2021.06.30 |
[JS][자바스크립트] 객체 와 원시 자료형 (0) | 2021.06.27 |