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 |
댓글