[JS] 4-3. 객체 심화

heyhey·2023년 2월 23일
0

JavaScript

목록 보기
9/14

심볼

JS는 객체 프로퍼티 키로 문자형과 심볼형만 허용한다.
심볼형이 뭘까?

심볼은 "유일한 식별자"를 만들고 싶을 때 사용한다.
let id = Symbol()
let id = Symbol("id) : id 라는 설명이 붙는다.

솔직히 잘 모르겠다 .. 실무에서도 많이 사용하지 않는다하고..
다음에 기회가 되면 다시 공부를 해보고 실무에 적용해 볼 수 있으면 좋겠다..

옵셔널 체이닝 ?.

옵셔널 체이닝을 사용하면 프로퍼티가 없는 중첩 객체를 에러없이 안전하게 접근할 수 있다.

ex)

let user = {}
console.log(user &&user.address &&user.address.name)// undefined

옵셔널 체이닝이 없을때는 이 방법(&&)을 사용해서 에러를 발생하지 않게 하였다.

?. 는 앞의 평가대상이 undefined / null 이면 undefined를 반환한다.

=> 최신문법 user?.address?.name

객체를 원시형으로 변환하기

  • 객체끼리 연산, 원시형을 파라미터로 받는 함수에 인자로 넘기는 경우에는 자동 형 변환이 일어난다.

  • 객체는 논리평가시 true를 받는다 .

  • 객체형 평가는 세 종류로 구분되는데 , hint 라고 불리는 값이 기준이 된다 (hint = 목표로 하는 자료형)

    • String : 문자열 인자함수 : 프로퍼티 키값 등에 사용될 때, hint가 string
    • Number : 숫자형 인자함수 : hint 는 number가 된다.
    • Default : 연산자가 기대하는 자료형이 확실하지 않을 시 hint는 default
  • Symbol.toPrimitive 라는 내장 심볼을 이용해 객체가 원시형으로 변환될 때, hint에 따라 어떻게 변환되는지 지정가능하다.

  • 객체에 Symbol.toPrimitive 가 없다면, JS 엔진은 toString => valueOf 를 호출하여 진행한다.

profile
주경야독

0개의 댓글