
59
3.10 변수 선언과 할당
·
숫자 선호 알고리즘도 문자열 선호 알고리즘과 비슷하지만,
valueOf()
를 먼저
시도하고
toString()
을 두 번째로 시도한다는 점이 다릅니다.
·
선호 없음 알고리즘은 변환하는 객체의 클래스에 따라 다르게 동작합니다. 객체
가 Date 객체일 경우 문자열 선호 알고리즘을 사용합니다. 그 외의 객체에서는
숫자 선호 알고리즘을 사용합니다.
여기서 설명한 규칙은 자바스크립트 내장 타입과 여러분이 정의하는 클래스의 기
본 규칙입니다. 14.4.7절에서 여러분이 정의하는 클래스에 객체를 기본 값으로 변
환하는 알고리즘을 직접 정의하는 방법을 설명합니다.
다음 주제로 넘어가기 전에, 숫자 선호 알고리즘이 빈 배열을 숫자 0으로 변환하
고 요소가 단 하나 있는 배열도 숫자로 변환하는 이유를 알아보겠습니다.
Number([]) //
=
> 0:
예상한
대로입니다
.
Number([99]) //
=
> 99:
설마
?
객체를 숫자로 변환할 때는 먼저 숫자 선호 알고리즘을 써서 객체를 기본 값으로
변환하고, 그 결과인 기본 값을 숫자로 변환합니다. 숫자 선호 알고리즘은 먼저
valueOf()
를 시도하고 실패할 경우
toString()
을 시도합니다. 하지만 배열은 기본
valueOf()
메서드를 상속하는데, ...