(Javascript) NaN과 isNaN() 메서드

Jayden·2023년 3월 27일

Javascript

목록 보기
5/8

NaN이란?

NaN은 "Not a Number"의 약자로, 자바스크립트에서 숫자가 아닌 값을 나타내는 특별한 값입니다. NaN은 숫자 타입입니다.

자바스크립트에서 숫자가 아닌 연산을 수행하면 NaN이 반환됩니다.
예를 들어, 0을 0으로 나누는 경우나 문자열을 숫자로 변환할 수 없는 경우에 NaN이 반환됩니다.

자바스크립트에서 NaN은 다른 값과 동등성을 비교할 때 항상 false를 반환합니다.
따라서, NaN은 자기 자신과도 같지 않습니다. 이러한 특성 때문에 isNaN() 함수를 사용하여 값이 NaN인지 확인할 수 있습니다.

예시

console.log(typeof NaN); // "number"

let result = 0 / 0;
console.log(result); // NaN
console.log(result == NaN); // false
console.log(isNaN(result)); // true

let str = "Hello";
console.log(parseInt(str)); // NaN

isNaN() 메서드

isNaN()은 자바스크립트 내장 함수로, 인수로 전달된 값이 NaN인지 확인하는 함수입니다. isNaN()은 전달된 값이 숫자인지 검사한 후, 값이 NaN이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

주의할 점은, isNaN()은 전달된 값이 숫자가 아닌 경우, 값이 숫자로 변환될 수 있는지 여부에 따라서도 결과가 달라집니다. 만약 전달된 값이 문자열 "hello"와 같은 문자열이라면, isNaN()은 이 값을 숫자로 변환할 수 없으므로 true를 반환합니다.
하지만 전달된 값이 문자열 "123"과 같은 숫자 형식의 문자열이라면, isNaN()은 이 값을 숫자로 변환할 수 있으므로 false를 반환합니다.

예시

console.log(isNaN(NaN)); // true
console.log(isNaN(123)); // false
console.log(isNaN("hello")); // true
console.log(isNaN("123")); // false
console.log(isNaN("")); // false (빈 문자열은 0으로 간주)
console.log(isNaN(true)); // false (true는 1로 간주)
console.log(isNaN(null)); // false (null은 0으로 간주)

0개의 댓글