수학과의 좌충우돌 프로그래밍

[ES6] Symbol 본문

웹프로그래밍/ES6

[ES6] Symbol

ssung.k 2020. 1. 5. 04:46

Symbol

symbol 은 새로운 데이터 타입입니다.

하지만 실제로 많이 사용되지는 않으니 간단히 알아보도록 하겠습니다.

 

symbol 의 첫번째 특징은 unique 입니다.

symbol 객체를 만들면 이는 다른 모든 것과는 다른 유일한 것이 됩니다.

const s1 = Symbol();
const s2 = Symbol();

console.log(s1 === s2);
// false

 

symbol 객체를 만들 때 description 을 넣을 수 있습니다.

하지만 이는 해당 symbol을 설명하기 위할 뿐 값으로서 사용할 수 없습니다.

const s1 = Symbol("first");
const s2 = Symbol("second");

console.log(s1); // Symbol(first)
console.log(s2); // Symbol(second)

 

두 번째 특징은 privacy 를 보장해줍니다.

settings object 의 키 값들을 확인한 결과 symbol 을 통해 만든 키 값은 찾아볼 수 없습니다.

const settings = {
  color: {
    background: "black",
    font: "white"
  },
  [Symbol("size")]: {
    font: 14
  }
}
console.log(settings);
/*
{
  color: { background: 'black', font: 'white' },
  [Symbol(size)]: { font: 14 }
}
*/

console.log(Object.keys(settings));
// [ 'color' ]

 

 

'웹프로그래밍 > ES6' 카테고리의 다른 글

[ES6] generator  (0) 2020.01.05
[ES6] proxy  (0) 2020.01.05
[ES6] Class의 상속, super, this  (0) 2020.01.04
[ES6] Async and Await  (0) 2020.01.03
[ES6] Promises - then, catch, all, race, finally  (1) 2020.01.03
Comments