[ES6]Symbol

JH Cho·2022년 9월 19일
0

es6

목록 보기
10/11

심볼 설명

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를 사용할 수 있게 해줌.
profile
주먹구구식은 버리고 Why & How를 고민하며 프로그래밍 하는 개발자가 되자!

0개의 댓글