본문 바로가기

JavaScript/공부공부

[JS] Infinity & NaN

 

[ Infinity ]

Infinity (Number.POSITIVE_INFINITY) _ 양의 무한대

-Infinity (Number.NEGATIVE_INFINITY) _ 음의 무한대

 

console창에서 요렇게 나온다.

 

type은 number


* Infinity가 나오는 경우 

 - number / 0 

 - Infinity 와 숫자 연산 ( +, -, *, / )

- Infinity 와 Infinity 연산

덧셈 / 곱셈 연산
뺄셈 / 나눗셈 연산


 

* 관련 메서드

 - isFinite ()  (전역함수)

 - Number.isFinite()  (Number 객체 제공 함수)

=> 인자값이 유한하면 true , 무한하면 false 반환.

 

* isFinite()  vs  Number.isFinite()

더보기

 

isFinite() 는 값을 number로 변환 후 판별,

Number.isFinite() 는 값을 number로 변환 X, number가 아닌 값은 false 반환.

따라서, 문자열을 판별하면 위처럼 다른 결과가 나온다.

 


 

[ NaN ] (Not a Number)

 - 숫자와 문자열 연산에서 발생

 - infinity의 뺄셈, 나눗셈 연산에서 발생 ( number / 0 )

 - 유효하지 않은 수학적 연산에서 발생


* 관련 메서드

 - isNaN ()  (전역함수)

 - Number.isNaN()   (Number 객체 제공 함수)

=> 인자값이 숫자가 아니면(NaN이면) true 반환

 

* isNan()  vs  Number.isNaN()

더보기

 

isNaN () 는 값을 number로 변환 후 판별,

Number.isNaN ()는 값을 number로 변환 X, NaN인 값은 true 반환.

 


* (숫자 + 문자열) 덧셈연산 주의

더보기

 

덧셈연산자(+)는 이항연산자 / 단항연산자로 사용가능.


- 이항연산자 +

(숫자 + 문자열) => (문자열 + 문자열) 로 자동변환 후 연산

isNaN() 은 숫자로 변환 후 NaN를 판별하기 때문에 

result 는 String이지만  isNaN( result ) 는 false를 반환.

 

- 단항연산자 +

(+문자열) => (숫자)로 변환