마크업개발 메모장

Number 객체란? 본문

Javascript

Number 객체란?

parra 2015. 5. 6. 12:52

Number 객체란?


자바스크립트에서 가장 단순한 객체인 Number 객체는 두 가지 방법으로 생성할 수 있다.


<script>

   // 변수 선언

   var numberFromLiteral = 273;

   var numberFromConstructor = new Number(273);


   // 출력

   alert(typeof (numberFromLiteral));

   alert(typeof (numberFromConstructor));

</script>






Number 객체는 Object 객체가 가지는 7가지 메서드와 함께 3가지 메서드를 추가로 갖는다.


Number 객체에 있는 3가지 메서드를 정리해봤다.

메서드 이름 

 설명

  toExponential()

 숫자를 지수 표시로 나타내는 문자열을 만듭니다.

  toFixed()

 숫자를 고정 소수점 표시로 나타낸 문자열을 만듭니다.

  toPrecision()

 숫자를 길이에 따라 지수 표시 또는 고정 소수점 표시로 나타낸 문자열을 만듭니다.


위 메서드는 모두 매개 변수로 숫자를 하나 입력받는다.

toPrecision() 메서드는 유효숫자의 자릿수를 의미하며, 그 이외의 메서드는 소수점 몇 자리까지 나타낼 것인지를 의미한다. 

3개의 메서드 모두 비슷한 기능을 수행하므로 toFixed() 메서드만 살펴보면,


toFixed() 메서드는 소수점 몇 번째 자리까지 자르는 메서드이다.


<script>

   // 변수 선언

    var number = 273.5210332;

    // 출력

    var output = '';

    output += number.toFixed(1) + '\n';

    output += number.toFixed(4);

    alert(output);

</script> 


위 코드를 실행하면 273.5와 273.5210을 출력한다. 추가로 변수 안에 숫자를 넣지 않아도 바로 메서드를 사용할 수 있다. 





숫자 273.5210332이 곧바로 toFixed() 메서드를 호출해 소수 두 번째 자리까지 자른다.

<script>

  // 변수 선언

   var fixedNumber = (273.5210332).toFixed(2);


   // 출력

   alert(fixedNumber);

</script> 





객체의 속성이 아니라 생성자 함수의 속성을 알아보자. 우선 다음 코드 처럼 함수에 속성과 메서드를 넣어 출력해보면,

<script>

  // 생성자 함수 선언

   function Constructor() { }

   Constructor.property = 273;

   Constructor.method = function () { };


   // 출력

   alert(Constructor.property);

</script> 


코드를 실행하면 함수의 property 속성을 정상적으로 출력한다. 




이렇게 함수는 속성과 메서드를 가질 수 있는데 Number 생성자 함수도 속성과 메서드를 가지고 있다.



Number 생성자 함수의 속성이란?


Number 생성자 함수가 갖는 속성을 아래에 정래해봤다.

속성 이름 

 설명

  MAX_VALUE

  자바스크립트의 숫자가 나타낼 수 있는 최대 숫자

  MIN_VALUE

  자바스크립트의 숫자가 나타낼 수 있는 최소 숫자

  NaN

  자바스크립트의 숫자로 나타낼 수 없는 숫자
  NEGATIVE_INFINITY  음의 무한대 숫자
  POSITIVE_INFINITY  양의 무한대 숫자

대부분 쉽게 사용할 수 있을 것 같으므로 궁금한 몇가지만 살펴보자. 


1. Number 객체의 MAX_VALUE 속성


다음 코드는 자바스크립트가 나타낼 수 있는 최대의 숫자에 1을 더해본것이다.


<script>

   // 변수 선언

    var number = Number.MAX_VALUE + 1;


    // 출력

    alert(number);

</script>





자바스크립트로 나타낼수 있는 최대 숫자에 1을 더했음에도 오류 없이 실행 되는것을 확인할수있다.


최대 숫자에 1을 더해도 출력되는 것을 보고 자바스크립트에 문제가 있는 게 아닌지 생각할 수 있는데, 실제 결과는 1을 더한 것이 아니다. 지수 표기로 전환됐을 때는 적어도 다음 코드 만큼 더해야 더해진다.


2. Number.MAX_VALUE에서 Infinity 변환

<script>

   // 변수 선언

    var addNumber = Number('0.0000000000000001e+308');

    var number = Number.MAX_VALUE + addNumber;


    // 출력

    alert(number);

</script>





코드를 실행하면 Infinity를 출력한다. 

자바스크립트 1.7976931348623157e + 308까지 나타낼 수 있으므로 1.7976931348623158e + 308부터는 무한한 양의 숫자로 인식해서 Infinity를 출력하게 된다.


**

자바스크립트는 표현 가능한 유한 수보다 더 큰 값은 무한대를 나타내는 특수한 값 Infinity로 출력되며 비슷하게 음수 값의 경우는 -Infinity로 출력한다.




'Javascript' 카테고리의 다른 글

Math 객체란?  (0) 2015.05.09
Date 객체란?  (0) 2015.05.07
Array 객체란?  (0) 2015.05.06
String 객체란?  (0) 2015.05.06
Object 객체란?  (0) 2015.04.30