본문 바로가기
javaScript/JS Tutorial

[javaScript] Infinity(무한)상세 설명 체크 방법은?

by mooyou 2022. 10. 3.
728x90
300x250
SMALL

Infinity(-Infinity)

Infinity 무한대 즉 자바스크립트에서 표현할 수 있는 양의 수를 넘는 무한대를 나타내는 값이다.

 

<p id="demo"></p>

<script>
let myNumber = 2; 
let txt = "";
while (myNumber != Infinity) {
   myNumber = myNumber * myNumber;
   txt = txt + myNumber + "<br>";
}
document.getElementById("demo").innerHTML = txt;
</script>

실행결과

4
16
256
65536
4294967296
18446744073709552000
3.402823669209385e+38
1.157920892373162e+77
1.3407807929942597e+154
Infinity

최초 2라는 숫자가 들어있는 myNumber 변수를 Infinity가 나올때까지 계속 곱했을때 최종적으로 Infinity가 나타나고 while문이 종료 된다.

 

 

또는 어떤 수를 0으로 나눌때 에도 Infinity가 나타난다.

let x =  2 / 0; //Infinity
let y = -2 / 0; //-Infinity

여기서 -2를 나누었을 경우 -Infinity가 나타나는데

Infinity는 양의 무한대, -Infinity는 음의 무한대를 나타낸다.

 

Infinity의 타입을 확인해 보면 number로 나오는걸 확인할 수 있다.

typeof Infinity; //number

 

어떤값이 Infinity 인지 아닌지 체크 하려면 isFinite메소드를 사용할 수 있다.

ES2015에 추가된 Numver.isFinite 메소드도 있는데 두개의 동작이 미묘 하게 다르다.

체크 했을때 유한한 수 이면 true를 반환 NaN이거나 무한대면 false를 반환한다.

Number.isFinite(10); // true
isFinite(10);//true

Number.isFinite('10'); // false
isFinite('10'); //true

Number.isFinite(NaN); //false
.isFinite(NaN); //false

Number.isFinite(Infinity); //false
isFinite(Infinity); //false

isFinite를 사용하면 문자열을 숫자로 자동으로 변환시킨다. 따라서 Number.inFinite를 사용했을때와 결과 값이 다르게 나타난다.

 

 

 

참고 : https://www.w3schools.com/js/js_numbers.asp

728x90
반응형
LIST

댓글