var 심볼 = Symbol('설명');
console.log(심볼)
심볼의 용도
: 오브젝트의 비밀스러운 key 값으로 사용
var 심볼 = Symbol('설명');
var weight = Symbol('진짜 몸무게')
var person = {name : 'Kim'};
person.weight = 100;
person[weight] = 200;
console.log(person)
//{name: 'Kim', weight: 100, Symbol(진짜 몸무게): 200}
for(var key in person){
console.log(person[key])
//'Kim' 100 심볼은 안나옴.
}
왜 출력이 안됨?
for in은 enumerable한 것만 출력해줌.
심볼은 해당 속성이 false임.
var height = Symbol('내 키')
person[height] = '160cm'
console.log(person[height])//160cm
-------또는 이렇게 넣어도 심볼 됨.
var person = {name:'Kim', [height] : '160cm'}
// 특징 1 : 심볼은 설명이 같아도 고유하다
var a = Symbol('설명1');
var b = Symbol('설명1');
console.log(a===b) // false
// 특징 2: Symbol.for()로 만드는 전역 심볼
var a = Symbol.for('설명1')
var b = a
// var b = Symbol.for('설명1')
console.log(a === b) //true
// 특징3 : 기본 내장 심볼
var 어레이 = [2,3,4];
console.log(어레이[Symbol.iterator]);
//ƒ values() { [native code] }
//어레이에 내장되어 있고 for of를 사용할 수 있게 해줌.