Number.valueOf() 메서드란?
자바스크립트의 valueOf() 메서드는 Number 객체(Number object)가 내부적으로 감싸고 있는 원시 숫자 값(primitive number)을 반환하는 함수입니다. 객체 형태의 숫자를 일반적인 숫자 값으로 변환해야 할 때 유용하게 사용됩니다.
쉽게 말해, new Number(215)처럼 만든 객체에서 실제 숫자인 215를 꺼내 주는 역할을 합니다.
문법(Syntax)
num.valueOf();
valueOf()는 별도의 매개변수를 받지 않습니다. 인수를 전달하더라도 무시되며, 항상 해당 Number 객체가 담고 있는 원시 값을 그대로 반환합니다.
예제 1: 기본 사용법
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var num = 215;
document.write("Result: " + num.valueOf());
</script>
</body>
</html>출력 결과
Result: 215
예제 2: 다양한 호출 방식과 NaN 처리
아래 예제는 인수를 넘겨 호출하거나 인수 없이 호출해도 결과가 동일함을 보여주며, 숫자가 아닌 값(NaN)에 대한 동작도 함께 확인할 수 있습니다.
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var num = 215;
document.write("Result: " + num.valueOf(0));
document.write("<br>");
document.write("Result: " + num.valueOf(-16));
document.write("<br>");
document.write("Result: " + num.valueOf());
document.write("<br>");
var dat = 0/0;
document.write("Result: " + dat.valueOf());
</script>
</body>
</html>출력 결과
Result: 215 Result: 215 Result: 215 Result: NaN
핵심 정리
valueOf()는 Number 객체가 감싸고 있는 원시 숫자 값을 반환합니다.- 메서드에 매개변수를 전달해도 무시되며, 어떤 인수를 넣어도 반환 값은 동일합니다.
- 숫자가 아닌 값(예:
0/0)에 대해 호출하면 NaN을 반환합니다. - 진법 변환이 필요한 경우에는
valueOf()가 아닌toString(radix)를 사용해야 합니다. 예를 들어(215).toString(16)은d7을 반환합니다.