[javascript] Infinity와 NaN의 함수 처리 방법

JavaScript에서 InfinityNaN은 숫자 타입의 두 가지 특별한 값을 나타냅니다. 이러한 값들을 다루는 함수 처리 방법에 대해 알아보겠습니다.

Infinity

Infinity는 양의 무한대를 나타내는 값으로, 어떠한 숫자를 0으로 나누었을 때, 또는 어떠한 숫자를 무한대에 가까운 수로 나누었을 때 발생합니다. Infinity는 어떤 수보다도 큰 값을 나타냅니다.

예를 들어, 다음과 같이 사용할 수 있습니다.

const maxNumber = Number.MAX_VALUE; // 1.7976931348623157e+308
const calculatedValue = maxNumber * 2; // Infinity

NaN

NaN은 “Not-a-Number”을 나타내는 값으로, 숫자가 아닌 값이 숫자 연산에 사용되었을 때 발생합니다. NaN은 숫자가 아닌 값을 나타내며, 어떠한 숫자와도 동등하지 않습니다.

예를 들어, 다음과 같이 사용할 수 있습니다.

const result = 0 / 0; // NaN
const invalidOperation = "hello" / 5; // NaN

함수 처리 방법

isFinite 함수

isFinite 함수는 전달된 값이 유한한지 검사하고, 유한한 숫자인 경우 true를 반환합니다. InfinityNaN과 같이 유한하지 않은 값인 경우 false를 반환합니다.

console.log(isFinite(10)); // true
console.log(isFinite(Infinity)); // false
console.log(isFinite(NaN)); // false

isNaN 함수

isNaN 함수는 전달된 값이 NaN인지 검사하고, NaN인 경우 true를 반환합니다.

console.log(isNaN(0 / 0)); // true
console.log(isNaN("hello" / 5)); // true
console.log(isNaN("123")); // false

결론

InfinityNaN은 JavaScript에서 특별한 숫자 값을 나타내며, isFiniteisNaN 함수를 사용하여 이러한 값을 체크할 수 있습니다. 주의할 점은 NaN은 자신과 일치하지 않는 유일한 값이기 때문에 동등 연산자(==)를 사용하여 NaN을 확인하는 것은 권장되지 않는다는 것입니다.

더 많은 정보는 MDN web docs에서 확인할 수 있습니다.