객체의 형 변환

Dorogono·2022년 5월 12일
0

JS 알아보기

목록 보기
11/19
post-thumbnail

객체도 형 변환을 한다.

let obj = {
  toString() {
    return "2";
  }
};

console.log(obj * 2); // 4

객체에 또 다른 변수나 메서드를 사용하지 않는다면, toString()에서 모든 형 변환을 처리한다.

다른 변수나 메서드가 있음에도 toString() 함수가 있다면, 이 함수를 우선적으로 실행하여 형 변환을 한다.

그러면 객체가 원시형으로 변해서 반환한다.

같은 의미를 가진 함수 valueOf()를 써도 같은 결과가 나온다.

이 이유는 Symbol과 연관되어 있는데, 이 부분은 추후에 공부하고 정리할 예정이다.

Symbol에 있는 obj[Symbol.toPrimitive] (hint)를 사용하면, String, Number, default 3개 유형으로 나온다.

defaultNumber와 같다고 보면 되고, 위 함수는 toString()를 호출한다고 보면 된다.

결국 위 함수를 사용해 함수가 어떤 값을 뱉고 있는지 확인하는 용도로 사용한다고 보면 된다.

profile
3D를 좋아하는 FE 개발자입니다.

3개의 댓글

comment-user-thumbnail
2022년 5월 12일

toString은 숫자 진수 변화도 할수 있고, 사용 용도가 다양하네요.
객체에서 동작하는건 신기하고 처음 알아 갑니다.
심볼에 대해서는 아직 공부 하지 않았지만 이 내용을 봄으로써 심볼에 대해 알게 되네요. ㅎㅎㅎ

답글 달기
comment-user-thumbnail
2022년 5월 13일

toString에 대해 몰랐던 내용을 알고 갑니다👍
Symbol 공부할 때 이 내용이 도움이 될 것 같아요!

답글 달기
comment-user-thumbnail
2022년 5월 13일

10진수를 2진수로 형 변환할 때 toString()을 사용했던 경험이 있는데 객체 형변환에 쓰이는군요 !! Symbol 과 관련이 있는 내용이라니 javascript 공부를 좀 더 해야겠어요 ㅎㅎ 오늘도 수고 많으셨습니다 😄😄

답글 달기