본문 바로가기
JS/JS 기초

JS- 심볼(Symbol)

by 쫑뚱이 2022. 8. 30.
728x90
반응형

JS- 심볼(Symbol)


오늘은 JS에서 사용되는

자료형 심볼에 대해 알아보겠습니다.

 

심벌은 유일성이 보장되는 자료형으로

여러 개의 설명이 동일한 심벌을 작성해도

심볼의 값은 다르게 나타납니다.

 

심볼은 Symbol('설명')을 사용하여 적용할 수 있습니다.

설명란에는 심볼을 설명할 수 있는 텍스트를

작성하시면 됩니다.

 

let id = Symbol('id'); //심볼 코드 예시

let id1 = Symbol('id');
let id2 = Symbol('id'); //설명이 같은 두개의 심볼을 비교해보면

console.log(id1 == id2); //false가 출력됩니다.

 

심볼형은 같은 설명을 가진 심볼이라도

동일 연산자를 사용하여 비교하면

false를 출력합니다.

 

심볼은 객체에서 사용할 수 있는데

이때 객체의 프로퍼티에서

(프로퍼티는 키: 값,으로 구성되어 있습니다.)

키에 심볼을 사용할 수 있습니다.

 

객체에 심볼을 사용하면

숨김 프로퍼티를 만들 수 있습니다.

 

숨김 프로퍼티는 외부 코드에서

접근할 수 없어 새로운 값으로 변경이

되지 않는 프로퍼티를 의미합니다.

 

숨김 프로퍼티의 장점은

유일성이 보장되기 때문에

제3의 식별자와 충돌될 문제가

없다는 것입니다.

 

이것이 중요한 이유는

에러를 발생하는 문제를 줄일 수 있다는 것입니다.

 

숨김 프로퍼티를 확인하는 방법에는

객체의 for in을 사용하면 알 수 있습니다.

 

let id = Symbol('id');
let user = {
  name: "Tom",
  [id]: 1000,
}

for (let key in user) alert(key); // 이때 심볼을 제외한 name만 출력이 됩니다.

 


 

오늘은 JS에서 자료형 중 심볼에 대해 알아보았습니다.

 

심볼은 유일성이 보장된 자료형으로

고유의 값으로 사용할 수 있습니다.

 

심볼의 장점은 외부의 접근이 안되고

심볼의 값을 덮어쓰는 것 또한 안됩니다.

 

심볼은 객체에서 키에 사용될 수 있으며

심볼로 프로퍼티를 생성하면

숨김 프로퍼티로 출력하면 보이지 않지만

호출해서 사용할 수 있습니다.

 

이것을 확인하기 위해

객체에서 for in을 사용하면

바로 확인할 수 있습니다.

 

감사합니다!

728x90
반응형

'JS > JS 기초' 카테고리의 다른 글

JS- setTimeout, clearTimeout, setInterval, clearInterval  (0) 2022.09.07
JS- 구조 분해 할당(Destructuring assignment)  (0) 2022.09.07
JS- 배열(Array)  (0) 2022.08.25
JS- 객체(Object)  (3) 2022.08.25
JS- 인터프리터 언어  (0) 2022.08.25

댓글