본문 바로가기
끄적끄적

JS) symbol : 동일한 string으로 심볼 만들고 싶을때와 그렇지 않을때

by 뇸뇸 nyomnyom 2022. 7. 29.

동일한 string(문장 : 문자열을 나타내는 자료형)를 이용해서 심볼을 만들어도

심볼에서는 다른 요소라고 생각함.

const symbol1 = Symbol('id');
const symbol2 = Symbol('id');
console.log(symbol1 === symbol2); //false

이렇게 하면 false라는 답이 나옴.

 

만약 난 다른 요소라고 생각 안했으면 좋겠어!

같은 요소라고 인식하게 해죠!라고 한다면

심볼 뒤에 .for만 붙여주면 된다.

const symbol1 = Symbol.for('id');
const symbol2 = Symbol.for('id');
console.log(symbol1 === symbol2); //true

이렇게 작성해주면 true라고 나온다.

 

type을 확인할때는

보통 다른 타입 확인할 때와 동일하게 하면

Uncaught TypeError :  Cannnot covert a Symbol value to a string at 무슨무슨.js 라고 나온다.

console.log(`value: ${symbol1}, type: ${typeof symbol1}`);

그래서 읽기 전이라는 뜻의 description을 추가로 적어줘야 한다

console.log(`value: ${symbol1.description}, type: ${typeof symbol1}`);

댓글