자바스크립트에서는 몇 가지 특수한 숫자 값이 사용된다. 부동소수점 값으로 표현 가능한 가장 큰 유한 수보다 더 큰 값은 무한대를 나타내는 특수한 값이 되며 자바스크립트는 그 값을 Infinity로 출력한다. 비슷하게 음수 값이 표현 가능한 가장 작은 음수 값보다 더 작은 값은 음의 무한대가 되며 자바스크립트는 이 값을 -Infinity로 출력한다.
수리 연산(0을 0으로 나누는 것과 같은 경우)이 정의도지 않은 결과를 산출하거나 에러를 발생시킬 경우에도 특수한 자바스크립트 값이 반환된다. 이 경우 그 결과는 숫자가 아닌 특수한 값이 되며 자바스크립트는 이 값을 NaN으로 출력한다. 값 아닌 이 값은 별난 방식으로 작동한다. 어떤 숫자와 비교해도 동일하지 않으며 심지어 스스로와 비교해도 그렇다! 이러한 이유로 인해 이 값을 테스트해 보기 위해 isNaN()이라는 특별한 함수가 필요하다. 관련 함수 isFinite()는 주어진 숫자가 NaN이 아닌 동시에 양의 무한대나 음의 무한대가 아닌지 여부를 검사한다.
표 3-1은 이러한 특수한 숫자 값들을 표현하기 위해 자바스크립트에 정의되어 있는 몇 가지 상수를 나열한 것이다.
Infinity와 NaN은 ECMAScript v1 표준에서 정의된 것으로 자바스크립트 1.3 이전버전에서는 구현되지 않았었다. 그러나 Number와 관련된 다양한 상수들은 자바스크립트 1.1부터 지원되어 왔다.

표 3-1
특수한 숫자 상수들


상수                                     의미


Infinity                                       무한대를 나타내는 특수한 값
NaN                                          숫자가 아닌 특수한 값
Number.MAX_VALUE                   표현 가능한 가장 큰 수
Number.MIN_VALUE                    표현 가능한 (0에 가까운) 가장 작은 수
Number.NaN                               숫자가 아닌 특수한 값
Number.POSITIVE_INFOINITY        양의 무한대를 표현하는 특수한 값
Number.NEGATIVE_INFINITY         음의 무한대를 표현하는 특수한 값