본문 바로가기
내일배움 정리/JS 문법 공부

isNaN

by GREEN나무 2024. 12. 25.
728x90

isNaN

 JavaScript에서'Not-a-Number'를 확인하는 함수입니다.

주어진 값이 숫자가 아닌 경우 true를, 숫자인 경우 false를 반환합니다.

기본 동작

  • isNaN(value)는 value가 숫자가 될 수 없는 값인지 확인합니다.
  • 숫자로 변환 가능한 값은 false, 변환 불가능한 값은 true를 반환합니다.

숫자인 경우 (false 반환)

console.log(isNaN(123));      // false (123은 숫자)
console.log(isNaN("456"));    // false ("456"은 숫자로 변환 가능)
console.log(isNaN(3.14));     // false (유효한 숫자)

 

숫자가 아닌 경우 (true 반환)

console.log(isNaN("Hello"));  // true ("Hello"는 숫자로 변환 불가)
console.log(isNaN(undefined));// true (undefined는 숫자가 아님)
console.log(isNaN(NaN));      // true (NaN 자체도 숫자가 아님)

주의 사항

isNaN은 내부적으로 값을 숫자로 변환한 후 숫자인지 여부를 확인합니다. 따라서 예상치 못한 결과가 나올 수 있습니다.

이상한 동작 예시

console.log(isNaN("123abc")); // true ("123abc"는 숫자로 변환 불가)
console.log(isNaN(true));     // false (true는 숫자로 변환 시 1)
console.log(isNaN(null));     // false (null은 숫자로 변환 시 0)

Number.isNaN과의 차이점

ES6에서는 더 정확한 숫자 판별을 위해 Number.isNaN 함수가 추가되었습니다.

  • isNaN: 숫자 변환 후 판별 (더 유연하지만 예측 어려움)
  • Number.isNaN: 숫자 타입이면서 NaN인지 엄격히 판별
console.log(isNaN("123abc"));       // true (문자열 변환 불가)
console.log(Number.isNaN("123abc"));// false (문자열은 NaN이 아님)
console.log(Number.isNaN(NaN));     // true (NaN은 NaN)

간단 요약

  • isNaN(value): 숫자로 변환 가능한지 확인.
  • 주로 사용하는 상황: 값이 숫자인지 빠르게 체크할 때.
  • 더 정밀한 검사를 원한다면 'Number.isNaN'을 사용하는 것이 좋음!

'내일배움 정리 > JS 문법 공부' 카테고리의 다른 글

json으로 테이블 채우기 API (경로찾아삼만리....)  (0) 2024.12.27
숫자타입  (1) 2024.12.25
아스키코드 변환  (1) 2024.12.24
js 코드 최적화  (0) 2024.12.21
알파벳 대소문자 변경  (1) 2024.12.20