var 심볼 = Symbol("설명");
//심볼의 용도
//object 자료형의 비밀스런 key값
var weight = Symbol("내 시크릿 몸무게임");
var person = { name: "kim" };
//비밀스런 데이터를 저장하고 싶으면?
person.weight = 100; //(이렇게 하면 다 보임)
// 원래 object의 key값은 문자만 가능했음.
// 그런데 es6에서는 symbol을 넣을 수 있게 됨.
//반복문에서 안나타남
person[weight] = 200;
var height = Symbol("내 키");
person[height] = 170;
for (const key in person) {
console.log(person[key]); //kim, 100
}
var person2 = { name: "kim", [height]: 180 }; // 이런식으로도 가능객체안에 []
//(반복문에도 안뜨니까 기존 코드를 해칠일이 없다.)
//import 해온 파일/ 라이브러리를 쓸때
//거기 있던 object 에 자료를 추가하고 싶다면.
//Symbo특징
//설명이 같다고 같은 Symbol 이 아님.
var a = Symbol("설명1");
var b = Symbol("설명1");
// a == b X 설명은 설명일뿐.
var user = { name: "user1", [height]: 160 };
var user2 = { name: "user1", [height]: 160 };
var user3 = { name: "user1", [height]: 160 };
//전역 심볼.
var c = Symbol.for("설명1");
var d = Symbol.for("설명1");
//같은 설명을 가지고 있는 심볼이 위에 있으면
// var d = c;
// d === c true
var 어레이 = [2, 3, 4];
//어레이[Symbo.iterator] --> 어레이에 집어넣는 기본Symbol
// 깊게 들어갈 수록 쓸데가 없다.