JavaScript

원시 타입 - 숫자

hiro1983 2015. 2. 3. 19:23

숫자형

자바스크립트에서 숫자는 정수, 실수, 8진수 등 다양한 형식으로 표현이 가능하며, 숫자는 기본적으로 실수 값으로 해석이 된다. 숫자형에는 Infinity와 NaN 이라는 특수 값도 존재한다.


Infinity

자바스크립트에서는 최대, 최소 값을 벗어나는 숫자를 표현하기 위해 Infinity 값을 사용 한다.

typeof Infinity 를 실행시켜 보면 Number 값을 확인 할 수 있다.


전 글에서 보았지만...숫자를 0으로 나누는 경우에도 Infinity를 반환한다.

(정상적으로 계산을 할 수 없는 경우)


산술연산에서 Infinity가 포함 되었다면...결과값을 Infinity가 반환된다.


NaN (Not A Number)

자바스크립트에서는 숫자가 아닌 값이 산술 연산의 피연산자로 사용되면 NaN를 반환한다.

typeof NaN을 실행시켜 보면 Number 값을 확인 할 수 있다.


 var a = 11 + 'A';   ->    a = NaN


NaN은 비교 연산이 불가능 하다. 

자바스크립트에서 NaN 값을 확인하기 위해서는 isNaN() 이라는 함수를 사용 하면 확인이 가능하다.

isFinite()라는 함수도 존재하는데...이 함수는 인자가 표현가능한 수의 경우는 true를 표현이 불가능한 경우는 false을 반환한다.


 var a = NaN;


 isNaN(a);        -> true

 isFinite(a);       -> false


 a = 1;

 isFinite(a);       -> true


Number

자바스크립트에서는 Number 객체를 제공한다. Number는 원시 타입의 숫자를 객체로 만들기 위한 래퍼다.

Number 객체를 이용하면 Object에서 정의한 속성, 메서드를 사용할 수 있다.


객체를 생성하는 방법은 아래와 같다.


 var num = new Number(number 타입); 


Nunber는 값을 숫자로 변환하는 것도 가능하다.


 var a = new String('1');

 Number(a);    ->  1


 var b = '2';

 Number(b);    ->  2


 var c = '가';

 Number(c);    -> NaN   (숫자가 아닌 값이 인자로 전달되면 NaN이 반환된다.)


Number 객체의 설명은 아래 페이지 참조


 http://www.w3schools.com/jsref/jsref_obj_number.asp