본문으로 바로가기
반응형

Number 메소드

Number 메소드는 Number 객체에 정의되어 있는 숫자와 관련된 작업을 할 때 사용하는 메소드입니다.

 

1. Number.parseFloat()

2. Number.parseInt()

3. Number.isNaN()

4. Number.isFinite()

5. Number.isInteger()

6. Number.isSafeInteger()

 

1. Number.parseFloat() 메소드

문자열을 파싱(parsing), 즉 분석하여 문자열에 포함된 숫자 부분을 실수 형태로 반환합니다. 문자열에 여러 개의 숫자가 존재하면, 그중에서 첫 번째 숫자만을 실수 형태로 반환합니다.

Number.parseFloat("12");         // 12
Number.parseFloat("12.34");     // 12.34
Number.parseFloat("12문자열");   // 12
Number.parseFloat("12 34 56");   // 12
Number.parseFloat("문자열 56")); // NaN

 

2. Number.parseInt() 메소드

Number.parseInt() 메소드는 문자열을 파싱하여, 문자열에 포함된 숫자 부분을 정수 형태로 반환합니다. 문자열에 여러 개의 숫자가 존재하면, 그중에서 첫 번째 숫자만을 정수 형태로 반환합니다.

Number.parseInt("12");         // 12
Number.parseInt("12.34");      // 12
Number.parseInt("12문자열");   // 12
Number.parseInt("12 34 56");   // 12
Number.parseInt("문자열 56")); // NaN

 

3. Number.isNaN() 메소드

Number.isNaN() 메소드는 전달된 값이 NaN인지 아닌지를 검사합니다. 이 메소드는 전역 함수인 isNaN() 함수가 가지고 있던 숫자로의 강제 변환에 따라 발생하는 문제를 더는 겪지 않게 해줍니다. 이 메소드는 오직 숫자인 값에서만 동작하며, 그 값이 NaN인 경우에만 true를 반환합니다.

Number.isNaN(NaN);       // true
Number.isNaN(0 / 0);     // true
// 다음은 전역 함수인 isNaN()에서 잘못된 결과를 반환하는 예제임.

isNaN("NaN");            // true
isNaN(undefined);        // true
isNaN("문자열");         // true
// Number.isNaN() 메소드에서 맞는 결과를 반환하고 있음.

Number.isNaN("NaN");     // false
Number.isNaN(undefined); // false
Number.isNaN("문자열");  // false


4.Number.isFinite() 메소드

이 메소드는 오직 셀 수 있는 값에서만 동작하며, 그 값이 유한한 경우에만 true를 반환합니다.

Number.isFinite(0);        // true
Number.isFinite(3e45);     // true
Number.isFinite(Infinity); // false
Number.isFinite(NaN);      // false
// 다음은 전역 함수인 isFinite()에서 잘못된 결과를 반환하는 예제임.

isFinite("0");             // true
isFinite(null);            // true
// Number.isFinite() 메소드에서는 맞는 결과를 반환하고 있음.

Number.isFinite("0");      // false
Number.isFinite(null);     // false

 

5.Number.isInteger() 메소드

전달된 값이 정수이면 true를 반환하며, 정수가 아니거나 NaN, Infinity와 같은 값은 모두 false를 반환합니다.

Number.isInteger(0);        // true
Number.isInteger(-100);     // true
Number.isInteger(0.1);      // false
Number.isInteger("문자열"); // false
Number.isInteger(Infinity); // false
Number.isInteger(true);     // false

 

6.Number.isSafeInteger() 메소드

안전한 정수(safe integer)란 IEEE 754 국제 표준에서 정의한 64비트 부동 소수점 수로 정확히 표현되는 정수를 의미합니다.
-(253 - 1)부터 (253 - 1)까지의 모든 정수가 안전한 정수에 포함됩니다.

Number.isSafeInteger(10);                  // true
Number.isSafeInteger(Math.pow(2, 53) - 1); // true
Number.isSafeInteger(Math.pow(2, 53));     // false
Number.isSafeInteger(Infinity);            // false
Number.isSafeInteger(NaN);                 // false
Number.isSafeInteger(3.14);                // false

 

 

Number.prototype 메소드

모든 Number 인스턴스는 Number.prototype으로부터 메소드와 프로퍼티를 상속받습니다. 가장 많이 사용되는 대표적인 Number.prototype 메소드는 다음과 같습니다.

1. Number.prototype.toExponential()
2. Number.prototype.toFixed()
3. Number.prototype.toPrecision()
4. Number.prototype.toString()
5. Number.prototype.valueOf()

 

이때 전달받은 값은 지수 표기법에서 소수 부분의 자릿수로 사용됩니다.

var num = 12.3456;       // Number 인스턴스를 생성함.
num.toExponential();     // 1.23456e+1
num.toExponential(2);    // 1.23e+1
num.toExponential(4);    // 1.2346e+1
12.3456.toExponential(); // 1.23456e+1

 

var num = 3.14159265;  // Number 인스턴스를 생성함.
num.toFixed();         // 3
num.toFixed(2);        // 3.14
num.toFixed(4);        // 3.1416
3.14159265.toFixed(6); // 3.141593

 

3. toPrecision() 메소드

var num = 3.14159265;      // Number 인스턴스를 생성함.
num.toPrecision();         // 3.14159265
num.toPrecision(2);        // 3.1
num.toPrecision(4);        // 3.142
3.14159265.toPrecision(6); // 3.14159

 

4. toString() 메소드

전달받은 값에 해당하는 진법으로 우선 값을 변환한 후, 그 값을 문자열로 반환합니다.

var num = 255;       // Number 인스턴스를 생성함.
num.toString();      // 255
(255).toString();    // 255
(3.14).toString();   // 3.14
num.toString(2);     // 11111111
(100).toString(16);  // 64
(-0xff).toString(2); // -11111111

 

5. valueOf() 메소드

var numObj = new Number(123); // 123의 값을 가지는 Number 인스턴스를 생성함.
typeof numObj;                // object

var num = numObj.valueOf();
num;                          // 123
typeof num;                   // number

 

반응형