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 |