Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 변수가 NaN인지 확인하는 방법 (isNaN vs Number.isNaN)

JavaScript에서 변수가 NaN인지 확인하는 방법

NaN은 "Not-a-Number"(숫자가 아님)를 나타내는 자바스크립트의 특수한 값입니다. 주로 유효하지 않은 숫자 연산이나 실패한 형 변환의 결과로 반환됩니다. 어떤 값이 NaN인지 확인하려면 Number.isNaN() 또는 전역 함수 isNaN()을 사용하면 됩니다.

isNaN()과 Number.isNaN()의 차이점

  • isNaN(): 검사 전에 값을 숫자로 강제 변환합니다. 따라서 빈 문자열('')이나 false처럼 숫자로 변환 가능한 값도 false를 반환합니다.
  • Number.isNaN(): 타입 변환 없이 값이 정확히 NaN일 때만 true를 반환하므로 더 엄격하고 안전한 방식입니다. 최신 코드에서는 이 방법이 권장됩니다.

예제 코드

다음은 자바스크립트에서 변수가 NaN인지 확인하는 예제입니다. 버튼을 클릭하면 각 값에 대한 isNaN() 결과가 화면에 표시됩니다.

<!DOCTYPE html>
<html>
   <body>
      <button onclick="display()">Check</button>
      <p id="test"></p>
      <script>
         function display() {
            var a = "";
            a = a + isNaN(6234) + ": 6234<br>";
            a = a + isNaN(-52.1) + ": -52.1<br>";
            a = a + isNaN('Website') + ": 'Website'<br>";
            a = a + isNaN(NaN) + ": NaN<br>";
            a = a + isNaN('') + ": ''<br>";
            a = a + isNaN(0) + ": 0<br>";
            a = a + isNaN(false) + ": false<br>";
            document.getElementById("test").innerHTML = a;
         }
      </script>
   </body>
</html>

실행 결과 해석

  • isNaN(6234)false : 정수는 숫자이므로 NaN이 아닙니다.
  • isNaN(-52.1)false : 음수 소수 역시 유효한 숫자입니다.
  • isNaN('Website')true : 문자열은 숫자로 변환할 수 없어 NaN으로 판단됩니다.
  • isNaN(NaN)true : 값 자체가 NaN입니다.
  • isNaN('')false : 빈 문자열은 숫자 0으로 변환되므로 NaN이 아닙니다.
  • isNaN(0)false : 0은 유효한 숫자입니다.
  • isNaN(false)false : false는 0으로 변환되므로 NaN이 아닙니다.

정리

간단한 검사에는 isNaN()을 사용할 수 있지만, 암묵적인 타입 변환으로 인해 예상치 못한 결과가 나올 수 있습니다. 따라서 값이 실제로 NaN인지 정확하게 판별하려면 Number.isNaN()을 사용하는 것이 가장 안전하고 권장되는 방법입니다.