무한대(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
'JavaScript > 기초' 카테고리의 다른 글
[JavaScript]스코프(Scope) (0) | 2022.07.07 |
---|---|
[JavaScript]스택과 실행 컨텍스트(Stack and Execution Context) (0) | 2022.07.06 |
[JavaScript]Symbol이란? (0) | 2021.12.31 |
[JavaScript]래퍼 객체(Wrapper Object) (0) | 2021.05.27 |
[JavaScript]null과 undefined 차이점 (0) | 2021.05.19 |
댓글