심볼은 객체의 고유한 식별자
ECMAScript 2015부터 'Symbol' 이라는 새로운 원시타입이 도입.
Symbol은 고유한 식별자로서 사용되며, 한번 생성하면 복사 하거나 변경할 수 없음.
보통 Symbol의 사용 목적은 객체의 고유한 프로퍼티 키를 만들기 위해 사용
개인적으로는 애플리케이션 단에서는 활용되기가 어려운것 같음..
<요약>
원시형 테이터.
기본분법은 Symbol([description])이며 new 연산자는 지원하지 않음
Symbol()에서 반환되는 값은 고유함.
Symbol('test') === Symbol('test')
// false
var token = Symbol.for("tokenString");
console.log(Symbol.keyFor(token) === "tokenString"); // true
1. Array
2. String
3. Map
4. Set
5. Dom data structures
- NodeList HTMLCollection
6. argument
let iterable = new Map();
iterable.set('1', 'str1');
iterable.set('2', 'str2');
const iterable = iterableSymbol.iterator;
console.log(iterable.next()); // {value: Array(2), done: false} (0: "1"
1: "str1")
console.log(iterable.next()); // {value: Array(2), done: false} (0: "2"
1: "str2")
console.log(iterable.next()); // {value: undefined, done: true}