JavaScript에서 Infinity와 NaN은 숫자 처리에 관련된 오류를 나타내는 중요한 값들입니다. Infinity는 무한대를 나타내며, 어떤 숫자를 0으로 나누거나 Infinity에 다른 숫자를 곱하면 값이 됩니다. NaN은 “Not a Number”의 약자로, 숫자가 아닌 값을 나타냅니다. 이들의 발생은 종종 프로그램의 오류로 이어질 수 있으므로 디버깅이 중요합니다.
이 게시물에서는 JavaScript에서 Infinity와 NaN 값이 발생하는 원인과 디버깅 방법에 대해 다루겠습니다.
Infinity 값이 발생하는 경우
Infinity는 주로 0으로 나누거나 Infinity에 다른 숫자를 곱하는 등의 연산에서 발생합니다.
console.log(1 / 0); // Infinity
console.log(Infinity * 10); // Infinity
위와 같이 특수한 연산을 수행할 때 Infinity 값이 나올 수 있습니다.
NaN 값이 발생하는 경우
NaN 값은 주로 숫자가 아닌 값에 대해 수행된 연산에서 발생합니다.
console.log(0 / 0); // NaN
console.log("Hello" - 10); // NaN
위와 같이 유효한 연산이 아닌 경우에 NaN 값이 나올 수 있습니다.
디버깅 방법
1. 코드 검토
가장 먼저 코드를 검토하여 Infinity와 NaN이 발생하는 지점을 찾습니다.
// 코드 예시
function calculateTotal(items) {
let total = 0;
for (let item of items) {
total += item.price;
}
return total;
}
위 코드에서 item.price가 정의되지 않았을 때 NaN 값이 발생할 수 있습니다.
2. 조건 확인
Infinity와 NaN이 발생하는 연산에서 사용된 조건을 확인합니다. 0으로 나누는 연산이나 숫자가 아닌 값을 사용하는 연산을 주로 확인하게 됩니다.
3. 유효성 검사
실수로 NaN이나 Infinity가 발생하는 상황에 유효성 검사를 추가합니다.
// 코드 예시
function calculateTotal(items) {
let total = 0;
for (let item of items) {
if (!isNaN(item.price)) {
total += item.price;
}
}
return total;
}
4. 디버거 활용
디버거를 활용하여 실시간으로 변수의 값을 확인하고 연산의 과정을 추적하여 NaN이나 Infinity가 발생하는 원인을 찾습니다.
결론
Infinity와 NaN은 JavaScript에서 주의해야 할 중요한 숫자 값입니다. 이들의 발생을 방지하거나 식별하기 위해 코드를 지속적으로 검토하고 유효성 검사를 추가하는 것이 중요합니다.
참고 문헌: MDN web docs
이상입니다. 더 궁금한 사항이 있으면 언제든지 물어주세요!