DeepDive JS - 9일차 // 33,38장

2025. 1. 25. 16:49카테고리 없음

33장 7번째 데이터 타입 Symbol

 

심벌? 다른 값과 중복되지 않는 유일무이한 값 
new 연산자와 함께 호출되지 않음.

심벌 값은 암묵적으로 문자열, 숫타 타입으로 변환 안됨 
단,불리언 타입은 가능

 

const a = Symbol('sym')
const b = Symbol('sym')

console.log(a === b )// false

 

 

Symbol.for( ) 메서드 : 전역 심볼 레지스트리에 키와 일치하는 심벌 값 검색, 없으면 생성
const a = Symbol.for('sym')
const b = Symbol.for('sym')

console.log(a === b )// true

 

Smybol.keyFor( )메서드로 전역 심벌 레지스트리에 저장된 심벌 값의 키를 추출

Smybol.keyFor(a) //sym

 

타입스크립트 enum처럼 활용 가능 

 

프로퍼티 키로 사용법//

프로퍼티 은닉

const hiddenKey = Symbol("hidden");
const obj = {
  visible: "I am visible",
  [hiddenKey]: "I am hidden",
};

console.log(obj[hiddenKey]); // "I am hidden"
console.log(Object.keys(obj)); // ["visible"]
 
필요할때 보면? 근데 사용할 일이 있으려나


 

38장 브라우저의 렌더링 과정 

 

html/css  -> 파싱 -> DOM / CSSOM tree -> 렌더트리 -> 레이아웃 -> 페인팅 

파싱 :  (바이트 -> 문자 -> 토큰 -> 노드 -> DOM/CSSOM)
리플로우는 레이아웃이 다시 계산 ,

리페인트는 재결합된 렌더트리 기반 다시 페인트 하는 것 

 

script 위치 중요 
async : 먼저 로드되는 것부터 실행 // 순서 보장 x
defer : Dom생성 완료 후 ,DomContendLoaded 이벤트 전에 실행