숫자형으로의 형변환은 연산이나 숫자 관련된 함수를 적용할 때 일어나고,
문자형으로의 형변환은 주로 객체를 출력할 때 일어난다.
위와 같은 형변환을 원하는 대로 조절 할 수 있게 하는 게바로
특수 객체 메서드 (toPrimitive)
객체 형 변환은 hint라는 값이 구분 기준이 된다.hint : 목표로 하는 자료형
구분 기준은 총 3종류
1. string >> hint가 스트링이 된다.
2. number
>> 수학 연산 적용 시
3. default >> 연산자가 기대하는 자료형이 확실하지 않을 때>> 이항 덧셈 연산자는 피연산자의 자료형에 따라서, 문자열을 합치는 과정이 일어날 수도 있고,숫자를 더해주는 연산과정이 일어날 수도 있다.따라서 +의 인수가 객체일 경우에는hint가 default가 된다.
> 외울 필요는 없다.커스텀 객체 만들 때 규칙만 따르면 된다.
Symbol.toPrimitive
Symbol.toPrimitive라는 내장 심볼이 존재하는 데,
이 심볼은 hint를 명명할 때 사용한다.
let user={
name:'John',
money:1000
[Symbol.toPrimitive](hint){
alert('hint: ${hint}');
return hint=="string"?`{name:"${this.name}"}` : this.money;
}
};
alert(user) // hint : string -> {name:'John'}
alert(+user) // hint: number -> 1000
alert(user+500); // hint:default -> 1500
'여니의 프로그래밍 study > JavaScript' 카테고리의 다른 글
[BootStrap] Bootstrap의 모든 것 (0) | 2022.09.02 |
---|---|
[Javascript] 자바스크립트 배열 (0) | 2021.03.26 |
[Javascript] 심볼형에 대해 알아보기 (0) | 2021.03.25 |
4-4 메서드와 'this' (Javascript) (0) | 2021.03.11 |
4-3 가비지 컬렉션 (Javascript) (3) | 2021.03.11 |