본문 바로가기
WEB/JavaScript

[js] symbol

by DeveloperCat 2023. 11. 6.
반응형
심볼(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