Symbol Type
- 유니크한 식별자를 만들기 위해 사용된다.
- 보이는 게 같더라도 내부에서는 다른 값을 가진다.
- Symbol에 description을 줄 수도 있다. (어떠한 심볼인지 알 수 있게 해준다.)
- 실수로 override 해버리는 것을 방지해준다.
- for ...in과 getOwnPropertyNames에서 제외된다.
Symbol.for
- 원래는 심볼의 description까지 같아도 다른 값을 가진다.
- 하지만 Symbol.for를 이용하면 같은 description을 가지면 같은 값을 가지게 된다.
- for를 이용해 심볼을 생성하면 전역 심볼이 되어서 다른 곳에서 description을 이용하여 그 Symbol값을 가져와 사용할 수 있다.
Symbol.keyFor()
- 심볼을 찾을 때 사용하는 description을 얻을 수 있다. (전역)