NATIVE

settings_applicationsGlobal

NATIVE

Draft
  • account_tree
  • bug_report

NaN

설명

숫자가 아님(Not a number)을 의미하는 값이다.

구문

형식
NaN

기술 문서

NaN 상수는 전역 스코프(범위)에서 사용 가능한 읽기 전용 전역 멤버이다. 숫자가 아님을 의미하는 영문 'Not a number' 에서 각 알파벳 첫 글자를 따서 만든 상수 명이다.

Global 전역 객체의 속성이나 Number 객체에도 NaN 정적 프로퍼티가 존재한다.

한 가지 재미있는 사실은 동일한 두 개의 NaN은 서로 같지 않다라는 것입니다.

NaN === NaN // false

이러한 사실을 가지고 숫자를 입력받아 계산에 사용되는 로직에 활용할 수 있다. 즉, 일반 문자를 포함하여 입력 필드에 숫자가 입력 되었는가를 확인한 후 입력된 문자를 Number() 전역 함수를 이용해서 number 타입으로 형 변환을 한다.

이때 Number 함수는 인수로 전달받은 값이 숫자가 아닌 경우에 NaN을 반환하는데 반환된 값과 그 자신을 서로 비교하여 같은 경우에는 숫자가 맞는 것이고 같지 않을 경우에는 NaN 즉, 숫자가 아닌 일반 문자열을 입력받은 것이라 할 수 있다.

다음 예제 코드를 참고하자.

var num = document.getElementById("myNum").value;
// 기본적인 값을 체크
if (!num) {
    alert("숫자를 입력해 주세요.");
    return;
}

// 설정된 값을 number로 형 변환하며 number가 아닌 경우에는 NaN을 반환
num = Number(num);
// NaN은 자신과 타입까지 비교했을 경우에 결과는 false이다.
if (num !== num) {
    alert("숫자만 입력해 주세요.");
    return;
}

 

지원 웹브라우저