let symbolData = Symbol('Description');
Symbol() 를 이용하여 파라미터로 해당 설명을 적는다.
Symbol은 Object 자료형에 비밀스런 key값을 부여할 때 쓴다.
Object 자료형에는 문자로만 key값을 입력할 수 있다.
문자가 아닌 자료형을 입력하면 자동으로 문자로 치환된다.
그런데 Symbol도 key값이 될 수 있다.
person[심볼명] = 데이터;
var person = { name : 'Kim' };
person.weight = 100;
var weight = Symbol('내 진짜 몸무게');
person[weight] = 200;
console.log(person);
// {name: 'Kim', weight: 100, Symbol(내 진짜 몸무게): 200}
이 자료는 반목문을 사용해 출력하려고 해도 나오지 않는다.
**직접입력하기**
var height = Symbol('내 키임');
var person = { name : 'Kim', [height] : 160 };
대괄호를 활용해 직접 담아줄수 있다.
설명이 같다고 같은 객체가 아니다.
var a = Symbol('설명1');
var b = Symbol('설명1');
console.log(a === b); // false
a 와 b의 설명이 같음에도 서로 다른 객체이다.
Symbol() 이라고 사용할 때 마다 각각 유니크한 객체가 생성된다.
전역심볼
var a = Symbol.for('설명1');
var b = Symbol.for('설명1');
console.log(a === b); // true
Symbol.for() 로 새로운 Symbol을 만들 때 설명이 같으면 이미 그 설명을 가지고 있는 Symbol을 그 자리에 집어 넣는다.
기본 내장 Symbol
Array, Object 자료형을 만들 때 기본 Symbol들이 안에 생긴다.
array 자료형은 [Symbol.iterator] 라는 심볼이 있다.