본문 바로가기

Web/JavaScript

[JS] 심볼

728x90

property key: 문자형

Symbol


심볼은 유일한 식별자를 만들 때 사용

const a = Symbol();
const b = Symbol();


a == b // 생긴건 똑같지만 false 발생



유일성 보장

const id = Symbol('id'); //설명을 붙일 수 있음
const user = {
    name: 'Mike',
    age: 30,
    [id]: 'myid'
}
//{name: "Mike", age: 30, Symbol(id): "myid"}


그러나 Object.keys(user); 작성시
["name", "age"]만 발생
values, endries도 건너뜀


Symbol.for(): 전역 심볼


하나의 심볼만 보장받을 수 있음
없으면 만들고 있으면 가져오기 때문
Symbol함수는 매번 다른 Symbol값을 생성하지만, Symbol.for 메소드는 하나를 생성한 뒤 키를 통해 같은 Symbol을 공유

const id1 = Symbol.for('id');
const id2 = Symbol.for('id');
id1 === id2 // true

Symbol.keyFor(id1) //"id" 생성할 때 적었던 이름을 알려줌


숨겨진 Symbol key 보는법

Object.getOwnPropertySymbols(user); //작성 시 심볼들만 볼 수 있음
Reflect.ownKeys(user); //심볼을 포함한 모든 키를 보여줌
728x90

'Web > JavaScript' 카테고리의 다른 글

[JS] 수학, 숫자 메소드  (0) 2024.02.06
[JS] 객체 메소드, 컴퓨티드 프로퍼티  (0) 2024.02.06
[JS] 생성자 함수  (0) 2024.02.06
[JS] 변수 심화  (1) 2024.02.06
[JS] 배열  (0) 2024.02.05