JavaScript는 종종 숫자와 관련된 값으로 Infinity
와 NaN
을 반환합니다. 이러한 값들은 특별한 상황에서 발생하며, 이로 인해 함정과 주의 사항이 발생할 수 있습니다. 이번 포스트에서는 JavaScript에서 Infinity
와 NaN
에 대해 알아보고, 이러한 값을 다룰 때 주의해야 할 사항에 대해 살펴보겠습니다.
Infinity
와 NaN
이해하기
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
결론
Infinity
와 NaN
은 JavaScript에서 특별한 숫자 값으로, 유용하게 사용될 수 있지만 주의가 필요합니다. 올바르게 다루지 않으면 예기치 않은 동작이 발생할 수 있으므로, 이러한 값들을 다룰 때에는 주의하고 적절한 방어 로직을 고려해야 합니다.
참고 자료:
이상으로 Infinity와 NaN에 대한 함정과 주의 사항에 대해 알아보았습니다. 부족한 부분이 있다면 추가적인 자료를 찾아보시기 바랍니다.