2023. 1. 5. 22:55ㆍJavascript/TCP school
Number 메소드
Number 객체에 정의되어 있는 숫자와 관련된 작업을 할 때 사용하는 메소드
대표적인 Number 메소드
1. Number.parseFloat()
2. Number.parseInt()
3. Number.isNaN()
4. Number.isFinite()
5. Number.isInteger()
6. Number.isSafeInteger()
Number.parseFloat() 메소드
문자열을 파싱(parsing)하여, 문자열에 포함된 숫자 부분을 실수 형태로 반환
문자열에 여러 개의 숫자가 존재하면, 그중에서 첫 번째 숫자만을 실수 형태로 반환
이 메소드는 전역 함수인 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() 메소드
문자열을 파싱하여, 문자열에 포함된 숫자 부분을 정수 형태로 반환
문자열에 여러 개의 숫자가 존재하면, 그중에서 첫 번째 숫자만을 정수 형태로 반환
전역 함수인 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인지 아닌지를 검사
전역 함수인 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
Number.isFinite() 메소드
전달된 값이 유한한 수인지 아닌지를 검사
전역 함수인 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
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
Number.isSafeInteger() 메소드
전달된 값이 안전한 정수(safe integer)인지 아닌지를 검사
안전한 정수(safe integer)
IEEE 754 국제 표준에서 정의한 64비트 부동 소수점 수로 정확히 표현되는 정수
-(2^53 - 1)부터 (2^53 - 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
예를 들어 Math.pow(2, 53)은 2^53을 반환
자바스크립트 Number 메소드
메소드 |
설명 |
Number.parseFloat() | 문자열을 파싱하여, 문자열에 포함된 숫자 부분을 실수 형태로 반환함. |
Number.parseInt() | 문자열을 파싱하여, 문자열에 포함된 숫자 부분을 정수 형태로 반환함. |
Number.isNaN() | 전달된 값이 NaN인지 아닌지를 검사함. |
Number.isFinite() | 전달된 값이 유한한 수인지 아닌지를 검사함. |
Number.isInteger() | 전달된 값이 정수인지 아닌지를 검사함. |
Number.isSafeInteger() | 전달된 값이 안전한 정수(safe integer)인지 아닌지를 검사함. |
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()
toExponential() 메소드
Number 인스턴스의 값을 지수 표기법으로 변환한 후, 그 값을 문자열로 반환
이때 전달받은 값은 지수 표기법에서 소수 부분의 자릿수로 사용됨
요청한 소숫점까지 나타냄. 뒤에 e+1 붙여줌
numObj.toExponential([소수부분의자릿수])
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
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 인스턴스의 값을 문자열로 반환
전달받은 값에 해당하는 진법으로 우선 값을 변환한 후, 그 값을 문자열로 반환
numObj.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
그렇지 않으면 자바스크립트는 SyntaxError를 발생한 후, 프로그램을 중지시킬 것
valueOf() 메소드
Number 인스턴스가 가지고 있는 값을 반환
numObj.valueOf()
var numObj = new Number(123); // 123의 값을 가지는 Number 인스턴스를 생성함.
typeof numObj; // object
var num = numObj.valueOf();
num; // 123
typeof num; // number
자바스크립트 Number.prototype 메소드
메소드 |
설명 |
toExponential() | Number 인스턴스를 지수 표기법으로 변환한 후, 그 값을 문자열로 반환함. |
toFixed() | Number 인스턴스의 소수 부분 자릿수를 전달받은 값으로 고정한 후, 그 값을 문자열로 반환함. |
toPrecision() | Number 인스턴스의 가수와 소수 부분의 합친 자릿수를 전달받은 값으로 고정한 후, 그 값을 문자열로 반환함. |
toString() | Number 인스턴스의 값을 문자열로 반환함. |
valueOf() | Number 인스턴스가 가지고 있는 값을 반환함. |
참고
http://www.tcpschool.com/javascript/js_standard_numberMethod
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
'Javascript > TCP school' 카테고리의 다른 글
Date 객체 (0) | 2023.01.06 |
---|---|
Math 객체 (0) | 2023.01.06 |
Number 객체 (0) | 2023.01.05 |
전역 객체와 래퍼 객체 (0) | 2023.01.04 |
객체 프로퍼티와 메소드 (0) | 2023.01.04 |