심볼
Symbol
- 위와 같이 객체 property key가 boolean이나 숫자형이여도 문자형으로 반환된다.
- 객체 property key는 문자형으로 가능하고 다른 형태로는 Symbol형이 있다.
- 설명을 붙여주면 디버깅할 때 편하다.
- 유일성이 보장된다.
const a = Symbol();
const b = Symbol();
console.log(a); // Symbol()
console.log(b); // Symbol()
console.log(a === b); // false
- new를 붙이지 않는다.
- 유일한 식별자를 만들 때 사용한다.
- a와 b는 같은 Symbol() 의 값을 가지지만 일치, 동등연산자를 통해서 비교하면 false가 나온다.
property key : Symbol형
const id = Symbol('id');
const user = {
name : "Mike",
age : 30,
[id] : "myid"
}
console.log(user); // {name: "Mike", age: 30, Symbol(id): "myid"}
console.log(Object.keys(user)); // [name: "Mike", age: 30]
const user2 = {
name : 'DK',
age : 30,
}
const id2 = Symbol('id2');
user2[id2] = 'myid';
console.log(user2); // {name: 'DK', age: 30, Symbol(id2): 'myid'}
Object.keys, Object.values, Object.entries, for in 키가 심볼이면 등은 건너 뜀
어디에 사용할 수 있을까 - 원본 데이터는 건드리지 않고 속성을 추가할 수 있다.
댓글남기기