사용법
const 심볼 = Symbol("나이"); // 주석다는 느낌으로 오른쪽에 있는 게 object에 키 값으로 들어간다고 생각하면됨
let 개인정보 = { 이름: "John", gender: "male" };
개인정보[심볼] = 30; // 이건 value값으로 저장
개인정보
{이름: 'John', gender: 'male', Symbol(나이): 30} // 이렇게 찍히게 됨
{이름: 'John', gender: 'male', Symbol(나이): 30} // 이렇게 찍히게 됨
1. 뭔가 비밀스러운 데이터를 저장하고 싶을 때 사용하면 됨
변수 이름이 저장이 안되고
이렇게 심볼로 저장해놓으면 반복문같은거 써서 출력해도 안나옴(undefined로 나오긴함)
요약
뭔가 안 드러내고 싶은 정보를 object에 넣고싶으면 변수 = symbol('주석쓰는느낌')
object 만들고 obj[symbol] = 넣고싶은 value값 해놓으면 됨
아니면 개인정보 = { 이름 : "John" , [심볼] = 30 } 이렇게 바로 넣어도됨
2. 다른 파일들 import해오거나 라이브러리 쓸 때 기존 코드 망치기 싫을 때 유용
3.
let a = 1
let b = 1
a === b // true
하지만
let a = Symbol('1')
let b = Symbol('1')
a !== b임
만약에 같은 설명을 가지고 있는 심볼을 계속 쓰고 싶다라고 하면
let a = Symbol.for('1') 이라고 쓰면 이건 전역 심볼이 됨(근데 잘 안씀)
저번 포스팅에서 iterable인지 판단할 때
arr[Symbol.iterator]() 사용했던 것처럼 저건 기본 내장 Symbol임
'JS' 카테고리의 다른 글
랜덤으로 중복없이 수 뽑는거 연습 (0) | 2022.11.26 |
---|---|
JS 복습 (0) | 2022.11.21 |
for in / for of (0) | 2022.11.16 |
자바스크립트 동기 처리 / promise 문법 (0) | 2022.10.14 |
자바스크립트로 점수판 만들기 (0) | 2022.10.12 |