JavaScript에서 값을 숫자 타입으로 변환하려면 Number() 메서드를 사용합니다. 그런데 배열 ["demo"]를 Number()로 변환하면 어떤 결과가 나올까요? 정답은 NaN(Not a Number)입니다.
왜 NaN이 반환될까?
Number() 메서드는 전달받은 배열을 먼저 문자열로 변환합니다. 즉, ["demo"]는 문자열 "demo"가 됩니다. 하지만 "demo"는 유효한 숫자 형식이 아니므로 최종적으로 숫자로 해석되지 못하고 NaN을 반환하게 됩니다.
예제 코드
아래 코드를 실행하면 직접 변환 결과를 확인할 수 있습니다.
<!DOCTYPE html>
<html>
<body>
<p>["demo"]를 Number로 변환하기</p>
<script>
var myVal = ["demo"];
document.write("Number: " + Number(myVal));
</script>
</body>
</html>실행 결과
Number: NaN
참고: 숫자로 변환 가능한 경우
반면 배열 안에 숫자 형태의 값이 들어 있다면 결과가 달라집니다. 예를 들어 ["123"]처럼 요소가 하나인 배열은 문자열 "123"으로 변환된 뒤 숫자 123으로 성공적으로 변환됩니다.
var myVal = ["123"]; console.log(Number(myVal)); // 123 var emptyArr = []; console.log(Number(emptyArr)); // 0 (빈 배열은 0)
정리하면, Number()로 배열을 변환할 때는 배열 내부의 값이 유효한 숫자 형식인지에 따라 결과가 결정되며, "demo"처럼 숫자로 해석할 수 없는 값은 항상 NaN을 반환합니다.