[javascript] Infinity와 NaN의 커스텀 처리 방법

JavaScript에서 Infinity와 NaN은 숫자와 관련된 특별한 값으로, 예기치 않은 연산 또는 수학적인 에러 처리 시 발생할 수 있습니다. 이러한 값들은 주로 오류를 나타내며, 일부 경우에는 특별한 방식으로 처리해야 할 수도 있습니다.

Infinity

Infinity는 JavaScript에서 표현 가능한 가장 큰 수를 나타냅니다. 이 값은 양의 무한대를 나타내며, 다음과 같이 표기됩니다.

let infiniteNumber = 1 / 0;
console.log(infiniteNumber);  // Infinity

Infinity는 일반적으로 수학적인 계산 오류로 인해 발생하며, 이를 예상하지 못한 경우 애플리케이션의 안정성을 저해할 수 있습니다. 이러한 이유로 Infinity를 사용할 때는 항상 적절한 예외 처리를 수행하는 것이 좋습니다.

if (isFinite(result)) {
  // calculate further
} else {
  // handle infinite result
}

NaN

NaN은 “Not a Number”의 약어로, 정의되지 않거나 수학적으로 유효하지 않은 연산의 결과를 나타냅니다. 예를 들어, 0을 0으로 나눈 경우나, 유효하지 않은 숫자를 파싱한 경우에 NaN이 반환됩니다.

let nanNumber = 0 / 0;
console.log(nanNumber);  // NaN

NaN을 다룰 때는 주로 isNaN() 함수를 사용하여 유효성을 확인하고 처리합니다.

if (isNaN(result)) {
  // handle NaN result
} else {
  // continue with valid result
}

커스텀 처리 방법

InfinityNaN값에 대한 커스텀 처리 방법은 각 상황에 따라 다를 수 있습니다. 필요에 따라 이러한 값을 특정한 숫자나 기호로 대체하거나, 사용자에게 명확한 안내를 제공하는 등의 방법을 고려할 수 있습니다.

if (isFinite(result)) {
  // calculate further
} else if (result === Infinity) {
  result = "경우에 따라 정의된 값으로 대체";
} else {
  result = "계산할 수 없음";
}

NaN의 경우, 유효하지 않은 입력값을 처리하는 방법이 포함될 수 있습니다.

if (!isNaN(inputValue)) {
  // perform calculation
} else {
  console.error("유효하지 않은 입력값입니다.");
}

이러한 커스텀 처리 방법은 애플리케이션의 요구사항과 상황에 맞게 유연하게 수정될 수 있어야 합니다.

결론

InfinityNaN은 JavaScript에서 주로 수학적인 오류나 처리되지 않은 경우에 발생하는 값으로, 적절한 예외 처리 및 커스텀 처리가 필요합니다. 이에 따라 InfinityNaN을 다루는 방법을 이해하고 적절히 처리하는 것은 안정적인 애플리케이션 개발에 중요합니다.

이러한 값들의 다루임에 대해서 잘 알아두면 효율적인 코드를 작성할 수 있으며, 애플리케이션의 안정성과 사용자 경험을 향상시킬 수 있습니다.

MDN web docs