반응형
심볼(symbol)
심볼은 객체의 프로퍼티 키로 사용된다. 프로퍼티 키란 곧 해당 프로퍼티의 값에 접근하고자 할 때 사용하는 이름이다. JavaScript에서 객체의 프로퍼티 키는 대개 문자열 값이다. 숫자로 쓰는 것도 사실은 문자열이다(내부적으로 문자열로 변환됨).
[Symbol의 특징]
const sym1 = Symbol();
const sym2 = Symbol();
const sym3 = Symbol('foo');
const sym4 = Symbol('foo');
console.log(sym1 === sym1); // true
console.log(sym1 === sym2); // false
console.log(sym3 === sym4); // false
1. Symbol 함수를 호출하면 매번 새로운(고유한) 심볼이 생성된다.
const sym = new Symbol(); // Uncaught TypeError: Symbol is not a constructor
2. new 연산자를 이용한 래퍼 객체의 생성이 불가능하다
[주요 메소드]
1. Symbol.for() : 인자로 전달받은 문자열 값을 키로 갖는 심볼을 전역 심볼 레지스트리에서 찾아 반환하고, 탐색에 실패한다면 그 문자열 값을 키로 갖는 심볼을 새로 생성하여 전역 심볼 레지스트리에 저장한 뒤 이를 반환한다.
2. Symbol.keyFor() : 인자로 전달받은 심볼을 전역 심볼 레지스트리에서 찾고, 그 심볼의 키를 반환하고, 탐색에 실패한다면 undefined를 반환합니다.
반응형
'WEB > JavaScript' 카테고리의 다른 글
[js] 가변성과 불변성 (0) | 2023.11.06 |
---|---|
[js] bigint (0) | 2023.11.06 |
[JS] history (0) | 2023.10.29 |
[JS] location (0) | 2023.10.29 |
[JS] Storage (0) | 2023.10.29 |