본문 바로가기
카테고리 없음

[JavaScript] Symbol 타입

by 틴디 2021. 2. 20.
728x90
반응형

심벌 고유한 값으로 자기 자신만 같은 값으로 취급된다.

생성은 Symbol()을 통해서 생성하며 위에서 생성된 a 변수는 Symbol 값을 가지고 있는 것을 알 수 있다

앞서 이야기 했듯이 심벌은 고유한 값이기 때문에 같은 비교할 경우

false를 뱉어 낸다

심벌에 문자열을 전달하면 설명을 덧붙이거나 같은 값을 가리키게 할 수 있다.

우선 간단하게 Symbol의 인자로 문자열을 지정할 경우

간단히 해당 심볼을 설명하게 된다.

Symbol()에 인자를 전달해서 심볼 타입의 변수를 만들면

해당 변수를 찍어봤을 때 Symbol("test") 전달한 인자를 가지고 있는 것을 볼 수 있다.

그러나 심볼은 생성할 때마다 고유의 값을 가지고 있기 때문에 

같은 인자를 넘겨준 변수라 해도

비교할 경우 두 변수는 다른 값으로 취급되어 false의 결과를 얻게 된다

 

그렇다면 같은 값을 가리키게 하려면 어떻게 해야 할까

이때는 for을 사용한다

같은 저장 공가능 가리키는 test3와 test4를 심볼 타입으로 생성한다 

test1을 찍어보면 Symbol(test)로 나오지만 test3과 비교 했을 때 false가 나오는 것을 알 수 있다

이는 두 변수가 다른 값임을 나타낸다

반면에 for()을 통해 인자를 넘긴 심볼 test3 와 test4는 

전역 레지스트리에 심볼을 만들기 때문에 

생성시 레지스트리에 있는 값을 문자열을 통해 불러 올 수 있어 

비교시 true가 나오는 것을 알 수 있다.

keyFor을 통해 가리키는 문자열을 불러 올 수 있따. 

728x90
반응형

댓글