728x90
728x90
1. 기본 구조
- isNaN() 함수는 JavaScript에서 특정 값이 숫자인지 아닌지를 판단하는 데 사용됩니다.
- isNaN() 함수는 주로 수학 연산이나 숫자 비교 전에 값이 유효한 숫자인지 확인할 때 유용합니다.
2. 문법
- 매개변수 value는 숫자인지 확인하고 싶은 값입니다.
- 반환 값은 true 또는 false입니다. ( true: 해당 값이 숫자가 아님, false: 해당 값이 유효한 숫자)
isNaN(value)
3. 기본 예제
- isNaN()은 입력값을 숫자로 변환하려고 시도합니다. 만약 변환에 실패하면 true를 반환합니다.
isNaN(123); // false (숫자이기 때문에)
isNaN("123"); // false ("123"은 숫자로 변환될 수 있기 때문에)
isNaN("ABC"); // true ("ABC"는 숫자로 변환될 수 없기 때문에)
isNaN(true); // false (true는 1로 변환)
isNaN(undefined); // true (undefined는 숫자가 아님)
4. 주의 사항
- 객체나 배열 같은 다른 데이터 타입은 숫자로 변환 시 NaN이 되기 때문에, isNaN()은 이를 모두 true로 처리합니다.
isNaN({}); // true
isNaN([1, 2, 3]); // true
isNaN([]); // false (빈 배열은 숫자 0으로 간주됨)
5. isNaN() 함수와 Number.isNaN() 메서드의 차이점
- Number.isNaN()은 isNaN()과 다르게 정확히 NaN인 경우에만 true를 반환합니다.
- Number.isNaN()은 강제 변환을 수행하지 않고 값이 숫자 타입이면서 NaN인지 확인합니다.
Number.isNaN("ABC"); // false (문자열이 숫자로 변환되지 않기 때문에 NaN이 아님)
Number.isNaN(NaN); // true
Number.isNaN(undefined); // false
Number.isNaN(0 / 0); // true (0을 0으로 나누면 NaN이 됩니다)
Number.isNaN(Math.sqrt(-1)); // true (음수의 제곱근은 NaN이 됩니다)
- 일반적으로 숫자로 변환되지 않는 값들을 확인하고 싶다면 isNaN()을, 값이 숫자 타입인지 확인하면서 NaN 여부만 체크하고 싶다면 Number.isNaN()을 사용하는 것이 좋습니다.
function checkIfNumber(value) {
if (isNaN(value)) {
console.log(value + "는 숫자가 아닙니다.");
} else {
console.log(value + "는 숫자입니다.");
}
}
checkIfNumber("hello"); // "hello는 숫자가 아닙니다."
checkIfNumber("123"); // "123는 숫자입니다."
checkIfNumber(NaN); // "NaN는 숫자가 아닙니다."
728x90
'프로그래밍 > [javascript] 자바스크립트' 카테고리의 다른 글
[JavaScript] indexOf() 메서드 설명 및 예제 (0) | 2024.11.08 |
---|---|
[javascript] 자바스트립트 형변환 함수 정리 (0) | 2024.11.07 |
[javascript] 배열 복사 copyWithin() 함수 (0) | 2024.11.07 |
[javascript] encodeURI() 함수란? (0) | 2024.11.06 |
[javascript] decodeURI() 함수란? (0) | 2024.11.05 |