728x90
반응형
JS는 6개의 타입을 가지고 있었다.
- 원시타입(primitive data type)
- Boolean
- null
- undefined
- Number
- String
- 객체 타입(Object type
- Object
심볼(symbol)은 ES6에서 7번째 타입으로 변경 불가능한 원시 타입 값이다.
Sumbol()로 반환되는 모든 심볼값은 고유하다.
심볼은 주로 이름의 충돌 위험이 없는 유일한 객체의 프로퍼티 키를 만들기 위해 사용한다.
console.log(Symbole('foo') === Symbole('foo'));
// false;
console.log(Symbol() === Symbol());
// false;
console.log(typeof Symbol());
//"symbol"
Symbol 값도 객체의 프로퍼티 키로 사용할 수 있다. Symbol 값은 유일한 값이므로 Symbol 값을 키로 갖는 프로퍼티는 다른 어떠한 프로퍼티와도 충돌하지 않는다.
const obj = {};
const mySymbol = Symbol('mySymbol');
obj[mySymbol] = 123;
console.log(obj); // { [Symbol(mySymbol)]: 123 }
console.log(obj[mySymbol]); // 123
반응형
'창고(2021년 이전)' 카테고리의 다른 글
[JS] OOP(Objcet Oriented Programming) (0) | 2019.11.14 |
---|---|
[Git] pair programming work flow (0) | 2019.11.11 |
[CSS Rendering] CSSOM & Vendor Prefix1 (0) | 2019.11.03 |
[JS] 2-2_reduce,_pipe,_go (0) | 2019.11.01 |
[JS] 함수형 프로그래밍 - 2-1_함수형으로 전환하기 (0) | 2019.10.30 |