Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트 Infinity(무한대) 속성 완벽 정리

자바스크립트 Infinity 속성이란?

자바스크립트의 Infinity(무한대) 속성은 부동 소수점 숫자가 표현할 수 있는 범위를 벗어났을 때 사용되는 특수한 값입니다. 숫자가 부동 소수점의 상한(최댓값)을 초과하면 양의 무한대인 Infinity가 표시되고, 반대로 하한(최솟값)을 벗어나면 음의 무한대인 -Infinity가 표시됩니다.

참고로 자바스크립트에서 부동 소수점 숫자가 나타낼 수 있는 최댓값은 약 1.7976931348623157 × 10308입니다. 이 값을 초과하는 연산 결과는 모두 무한대로 처리됩니다.


다음은 자바스크립트 Infinity 속성의 동작을 확인할 수 있는 예제 코드입니다.

예제 코드

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
   body {
      font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
   }
   .num {
      font-size: 18px;
      font-weight: 500;
   }
</style>
</head>
<body>
<h1>JavaScript Infinity property</h1>
<div class="num">1.797693134862315E+10308</div>
<div class="num">-1.797693134862315E+10308</div>
<button class="Btn">CLICK HERE</button>
<h3>
Click on the above button to add and subtract the above floating numbers
by 1 respectively
</h3>
<script>
   let sampleEle = document.querySelector(".sample");
   let num1 = document.querySelectorAll(".num")[0];
   let num2 = document.querySelectorAll(".num")[1];
   document.querySelector(".Btn").addEventListener("click", () => {
      num1.innerHTML = +num1.innerHTML + 1;
      num2.innerHTML = +num2.innerHTML - 1;
   });
</script>
</body>
</html>

코드 설명

위 예제에서는 이미 부동 소수점 표현 한계를 훨씬 초과하는 두 개의 숫자(1.797693134862315E+10308-1.797693134862315E+10308)를 화면에 출력합니다.

그리고 'CLICK HERE' 버튼을 클릭하면 첫 번째 숫자에는 1을 더하고, 두 번째 숫자에는 1을 빼는 연산이 실행됩니다. 두 값 모두 이미 표현 가능한 범위를 벗어났기 때문에 연산 결과는 각각 Infinity-Infinity로 표시됩니다.

실행 결과

페이지를 처음 열었을 때의 화면입니다.

자바스크립트 Infinity(무한대) 속성 완벽 정리

'CLICK HERE' 버튼을 클릭한 후의 화면입니다.

자바스크립트 Infinity(무한대) 속성 완벽 정리

정리

자바스크립트에서 매우 큰 수를 다룰 때는 Infinity 속성의 동작을 반드시 염두에 두어야 합니다. 연산 결과가 Infinity 또는 -Infinity가 되면 더 이상 유효한 수치 계산이 불가능하기 때문에, 필요하다면 Number.MAX_VALUE와 같은 상수를 활용해 값의 범위를 사전에 검사하는 것이 좋습니다.