[TIL] 2022.05.06

Minsu Han·2022년 5월 6일
0

TODAY I LEARNED

목록 보기
42/46

오늘 한 일

  • 모던 자바스크립트 Deep Dive
  1. Number
  2. Math
  3. Date
  4. RegExp
  5. String
  6. 7번째 데이터 타입 Symbol

배운 것

  • Number 메서드
  • Math 메서드
  • Date 메서드
  • 정규 표현식 (패턴+플래그) 메서드
  • String 메서드

Symbol

  • 심벌은 변경 불가능하고 다른 값과 중복되지 않는 유일무이한 값이다
  • 주로 이름의 충돌 위험이 없는 유일한 프로퍼티 키를 만들기 위해 사용한다
  • Symbol.for / Symbol.keyFor 메서드
  • 심벌 값으로 프로퍼티 키를 만들면 다른 프로퍼티 키와 절대 충돌하지 않는다. 또한 for...in 문이나 Object.keys, Object.getOwnPropertyNames 메서드로 찾을 수 없어서 외부에 노출할 필요가 없는 프로퍼티를 은닉할 수 있다
    (다만 Object.getOwnPropertySymbols 메서드로 찾을 수는 있다)
  • 심벌을 사용하면 표준 사양의 버전이 올라감에 따라 추가될지 모르는 어떤 프로퍼티 키와도 충돌할 위험이 없어 안전하게 표준 빌트인 객체를 확장할 수 있다
  • 이터러블은 Well-known Symbol인 Symbol.iterator를 키로 갖는 메서드를 가지며, 이 메서드를 호출하면 이터레이터를 반환한다. 일반 객체 역시 Symbol.iterator를 키로 갖는 메서드를 구현하면 그 객체는 이터러블이 된다
  • 심벌은 중복되지 않는 상수 값을 생성하는 것은 물론 기존에 작성된 코드에 영향을 주지 않고 새로운 프로퍼티를 추가하기 위해, 즉 하위 호환성을 보장하기 위해 도입되었다
profile
기록하기

0개의 댓글