-
[표준객체] - Number 메소드JavaScript/기본 1 2022. 2. 7. 14:51
- Number.parseFloat( ) 메소드 - 사파리 / 익스플로러 지원하지 않는다.
- 문자열 파싱하여 문자열에 포함된 숫자 부분을 실수 형태로 반환
- 여러 개의 숫자가 존재하면, 첫 번째 숫자만을 실수형태로 반환
-
Number.parseFloat("12"); // 12 Number.parseFloat("12.34"); // 12.34 Number.parseFloat("12문자열"); // 12 Number.parseFloat("12 34 56"); // 12 Number.parseFloat("문자열 56"); // NaN
- 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
- Number.isNaN( ) 메소드 - 익스플로러 지원하지 않는다.
- 전달된 값이 NaN인지 아닌지 검사
- 숫자인 값에서만 동작
- 값이 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
- 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 // 전역함수 isFinite()처럼 전달된 값을 숫자로 강제 변환하지 않는다.
- Number.isInteger( ) 메소드 - 익스플로러 지원하지 않는다.
- 전달된 값이 정수인지 아닌지 검사
-
Number.isInteger(0); // true Number.isInteger(-100); // true Number.isInteger(0.1); // false Number.isInteger("문자열"); // false Number.isInteger(Infinity); // false Number.isInteger(true); // false
- Number.isSafeInteger( ) 메소드 - 사파리 / 익스플로러 지원하지 않는다.
- 전달된 값이 안전한 정수(safe integer)인지 아닌지 검사
- 안전한 정수란?
- IEEE754국제 표준에서 정의한 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.toExponential( )
Number.prototype.toFixed( )
Number.prototype.toPrecision( )
Number.prototype.toString( )
Number.prototype.valueOf( )- toExponential( )메소드
- Number 인스턴스의 값을 지수 표기법으로 변환한 후, 그 값을 문자열로 반환
- 전달받은 값은 지수 표기법에서 소수 부분의 자릿수로 사용된다.
-
// 원형 numObj.toExponential([소수부분의 자릿수]) -
// 예제 var num = 12.3456; // Number 인스턴스를 생성함 num.toExponential(); // 1.23456+1 num.toExponential(2); // 1.23e+1 num.toExponential(4); // 1.2346e+1 12.3456.toExponential(); // 1.23456e+1
- toFixed( ) 메소드
- Number 인스턴스의 소수 부분 자릿수를 전달받은 값으로 고정한 후, 그 값을 문자열로 반환
-
// 원형 numObj.toFixed([소수부분의 자릿수]) -
// 예제 var num = 3.14159265; // Number 인스턴스를 생성함 num.toFixed(); // 3 num.toFixed(2); // 3.14 num.toFixed(4); // 3.1416 3.14159265.toFixed(6); // 3.141593
- toPrecision( ) 메소드
- Number 인스턴스의 가수와 소수 부분을 합친 자릿수를 전달받은 값으로 고정한 후, 그 값을 문자열로 반환
-
// 원형 numObj.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
- toString( ) 메소드
- Number 인스턴스의 값을 문자열로 반환
- 전달받은 값에 해당하는 진법으로 우선 값을 변환한 후, 그 값을 문자열로 반환
- 사용 시 주의사항
- 반드시 괄호( ) 사용해서 숫자 리터럴을 감싸준다.
- 그렇지 않으면 SyntaxError 발생
-
// 원형 numObj.toString([진법]) -
// 예제 var num = 255; // Number 인스턴스를 생성함 num.toString(); // 255 (255).toString(); // 255 (3.14).toString(); // 3.14 num.toString(2); // 11111111, 2진법 변환 (100).toString(16); // 64 (-0xff).toString(2); // -11111111
- valueOf( ) 메소드
- Number 인스턴스가 가지고 있는 값을 반환
-
// 원형 numObj.valueOf() -
// 예제 var numObj = new Number(123); // 123의 값을 가지는 Number 인스턴스를 생성함 typeof numObj; // object var num = numObj.valueOf(); num; // 123 typeof num; // number
'JavaScript > 기본 1' 카테고리의 다른 글
[표준 객체] - Math 객체 (0) 2022.02.10 [표준객체] - Number 객체 (0) 2022.02.07 [표준객체] - 전역객체와 래퍼객체(wrapper object) (0) 2022.02.06 [객체] - 객체 프로퍼티와 메소드 (0) 2022.02.05 [객체] - 객체 다루기 (this) (0) 2022.02.05 - Number.parseFloat( ) 메소드 - 사파리 / 익스플로러 지원하지 않는다.