[javascript] Infinity와 NaN의 비교 연산

자바스크립트에서 InfinityNaN은 특별한 부동 소수점 값으로 처리됩니다. 이들 값을 비교하는 것은 특이한 동작을 보일 수 있으므로 주의가 필요합니다.

Infinity

Infinity는 “무한대”를 나타내는 값으로, 어떠한 숫자보다 큰 값으로 간주됩니다. Infinity는 어떠한 숫자와 비교하여도 항상 크다고 판단됩니다.

console.log(Infinity > 100); // true
console.log(Infinity > -1000); // true

NaN

NaN은 “숫자가 아님”을 의미하는 값으로, 숫자가 아닌 연산의 결과나 부적절한 숫자 변환 등으로 발생합니다. NaN은 자기 자신과 포함하여 어떠한 값과도 같지 않다고 판단됩니다.

console.log(NaN === NaN); // false

이와 같은 특징으로 인해 InfinityNaN을 비교하는 경우 예상치 못한 결과를 초래할 수 있습니다.

비교 연산

이를 살펴보기 위해 다음과 같은 비교를 고려해 보겠습니다.

console.log(Infinity > NaN); // false
console.log(Infinity < NaN); // false
console.log(Infinity === NaN); // false

모든 비교에서 false가 반환됩니다. 이는 NaNInfinity가 어떤 숫자와도 정확히 비교되지 않는다는 사실을 보여줍니다.

따라서 InfinityNaN을 사용할 때에는 이러한 특징을 고려하여 적절한 예외 처리 및 조건문을 사용해야 합니다.

결론

자바스크립트에서 InfinityNaN은 특별한 동작을 가지고 있으므로, 이에 대한 이해와 주의가 필요합니다. InfinityNaN을 비교하는 경우에는 예상치 못한 결과가 나올 수 있으므로 주의가 필요합니다.

이러한 특이한 동작을 이해하여 안전한 코드를 작성하고, 버그를 예방할 수 있도록 주의 깊게 개발하는 것이 중요합니다.

참고 자료