[javascript] Infinity와 NaN의 함정과 주의 사항

JavaScript는 종종 숫자와 관련된 값으로 InfinityNaN을 반환합니다. 이러한 값들은 특별한 상황에서 발생하며, 이로 인해 함정과 주의 사항이 발생할 수 있습니다. 이번 포스트에서는 JavaScript에서 InfinityNaN에 대해 알아보고, 이러한 값을 다룰 때 주의해야 할 사항에 대해 살펴보겠습니다.

InfinityNaN 이해하기

Infinity

Infinity는 JavaScript에서 사용되는 특별한 숫자 값으로, 양의 무한대를 나타냅니다. 이 값은 수학적으로 계산이 불가능한 연산의 결과로 반환되거나, 어떤 숫자를 0으로 나누었을 때 발생합니다.

예를 들어:

console.log(1 / 0); // 결과: Infinity
console.log(Math.pow(2, 1000)); // 결과: Infinity

NaN

NaN은 “Not a Number”의 약자로, 숫자가 아님을 나타내는 값입니다. 이 값은 유효하지 않은 계산이나 숫자 형식이 아닌 데이터타입에 대해 반환됩니다.

예를 들어:

console.log(0 / 0); // 결과: NaN
console.log(Math.sqrt(-1)); // 결과: NaN

주의 사항

비교 연산

NaN은 자기 자신과도 동일하지 않은 값을 반환하므로 NaN을 확인하기 위해 === 연산자를 사용하면 예상치 못한 결과를 얻을 수 있습니다. 따라서 isNaN() 함수를 사용하여 NaN 여부를 확인하는 것이 더 안전합니다.

console.log(NaN === NaN); // 결과: false
console.log(isNaN(NaN)); // 결과: true

무한대 값 확인

Infinity는 양의 무한대를 나타내므로, 어떤 수보다 큰지 확인하거나 무한대값을 확인하기 위해 isFinite() 함수를 사용하는 것이 바람직합니다.

console.log(1 / 0 === Infinity); // 결과: true
console.log(isFinite(1 / 0)); // 결과: false

결론

InfinityNaN은 JavaScript에서 특별한 숫자 값으로, 유용하게 사용될 수 있지만 주의가 필요합니다. 올바르게 다루지 않으면 예기치 않은 동작이 발생할 수 있으므로, 이러한 값들을 다룰 때에는 주의하고 적절한 방어 로직을 고려해야 합니다.

참고 자료:

이상으로 Infinity와 NaN에 대한 함정과 주의 사항에 대해 알아보았습니다. 부족한 부분이 있다면 추가적인 자료를 찾아보시기 바랍니다.