JavaScript/기초

[JavaScript]무한대(Infinity)란?

DevStory 2022. 12. 5.

무한대(Infinity)

무한대(Infinity)는 JavaScript 전역 객체의 프로퍼티이므로 전역 범위에서 사용할 수 있습니다.

 

전역 객체의 프로퍼티인 Infinity는 양의 무한대를 의미하며, 초기값은 Number.POSITIVE_INFINITY입니다.

Infinity === Number.POSITIVE_INFINIT; // true

 

Infinity 앞에 마이너스(-) 기호가 존재하면 음의 무한대를 의미하며, Number.NEGATIVE_INFINITY와 동일합니다.

-Infinity === Number.NEGATIVE_INFINITY; // true

 

일반적으로 다른 프로그래밍 언어에서는 숫자를 0으로 나누게 되면 ArithmeticException 예외가 발생하지만, JavaScript는 Infinity를 반환합니다.

1/0; // Infinity

 

만약, 음수를 0으로 나누게 되면 -Infinity가 반환됩니다.

-1/0; // -Infinity

Infinity 연산

Infinity의 타입은 Number이므로 연산이 가능해야 합니다.

typeof(NaN); // 'number'

 

아래 예제는 Infinity와 100이랑 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/) 연산을 수행합니다.

console.log(Infinity + 100); // Infinity
console.log(Infinity - 100); // Infinity
console.log(Infinity * 100); // Infinity
console.log(Infinity / 100); // Infinity

 

아래 예제는 Infinty와 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/) 연산을 수행합니다.

console.log(Infinity + Infinity); // Infinify
console.log(Infinity - Infinity); // NaN
console.log(Infinity * Infinity); // Infinify
console.log(Infinity / Infinity); // NaN

Infinity인지 체크하는 방법

숫자가 유한대인지 확인하는 방법으로 전역 함수인 isFinite() 메서드와 Number 객체에서 제공하는 Number.isFinite() 메서드를 사용할 수 있습니다.

 

전역 함수인 isFinite() 메서드는 값이 유한대인지 확인하기 전에 숫자 타입으로 변환하지만, Number.isFinite() 메서드는 값을 숫자 타입으로 변환하지 않습니다.

 

아래 예제처럼 숫자 값인 문자열을 전달하면, 이 둘의 차이점을 확인할 수 있습니다.

isFinite("100"); // true
Number.isFinite("100"); // false

 

Infinity는 셀 수 없는 무한대 숫자이므로 isFinite() 메서드와 Number.isFinite() 메서드는 false를 반환합니다.

isFinite(Infinity); // false
Number.isFinite(Infinity); // false
반응형

댓글