본문 바로가기
정리_창고

JavaScript - Number Methods 사전식 정리

by SKim입니다 2020. 7. 8.

JavaScript 총정리 - 목차로 바로가기

 

constructor  number.constructor

object의 constructor 함수를 리턴한다.

더보기

리턴값: function Number() { [native code] }

 

isFinite()  isFinite(testValue)

어떤 숫자가 유한하고 legal한 숫자인지 체크한다.

더보기

리턴값: 불리언. 테스트값이 +Infinity/ -Infinity/ NaN이면 false를, 그 외에는 true를 리턴한다.

testValue - 테스트할 값

 

* Global 메소드에도 있다. 

 

isFinite(Infinity);  // false
isFinite(NaN);       // false
isFinite(-Infinity); // false

isFinite(0);         // true
isFinite(2e64);      // true
isFinite(910);       // true

isFinite(null);      // true, would've been false with the 
                     // more robust Number.isFinite(null)

isFinite('0');       // true, would've been false with the 
                     // more robust Number.isFinite("0")

 

isInteger()  Number.isInteger(value)

어떤 값이 정수인지 체크한다.

더보기

리턴값: 불리언. 테스트값이 정수이고 type Number이면 false를, 그 외에는 true를 리턴한다.

testValue - 테스트할 값

 

Number.isInteger(0);         // true
Number.isInteger(1);         // true
Number.isInteger(-100000);   // true
Number.isInteger(99999999999999999999999); // true

Number.isInteger(0.1);       // false
Number.isInteger(Math.PI);   // false

Number.isInteger(NaN);       // false
Number.isInteger(Infinity);  // false
Number.isInteger(-Infinity); // false
Number.isInteger('10');      // false
Number.isInteger(true);      // false
Number.isInteger(false);     // false
Number.isInteger([1]);       // false

 

isNaN()  isNaN(value)

어떤 값이 illegal한 숫자인지 체크한다.

더보기

리턴값: 불리언. 그 값이 NaN(Not-a-Number)이면 true를, 그렇지 않으면 false를 리턴한다.

value - 테스트할 값

 

* Number.isNaN() 메소드와는 다르다.

 - isNaN()은 값을 Number로 변환한 후에 그것을 테스트한다.

 - Number.isNaN()은 Number로 변환하지 않는다. 따라서 데이터 타입이 Number가 아니면 true를 리턴하지 않는다.

 

* Global 메소드에도 있다. 

 

isNaN(NaN);       // 참
isNaN(undefined); // 참
isNaN({});        // 참

isNaN(true);      // 거짓
isNaN(null);      // 거짓
isNaN(37);        // 거짓

// 문자열
isNaN("37");      // 거짓: "37"은 NaN이 아닌 숫자 37로 변환됩니다
isNaN("37.37");   // 거짓: "37.37"은 NaN이 아닌 숫자 37.37로 변환됩니다
isNaN("123ABC");  // 참: parseInt("123ABC")는 123이지만 Number("123ABC")는 NaN입니다
isNaN("");        // 거짓: 빈 문자열은 NaN이 아닌 0으로 변환됩니다
isNaN(" ");       // 거짓: 공백이 있는 문자열은 NaN이 아닌 0으로 변환됩니다

// dates
isNaN(new Date());                // 거짓
isNaN(new Date().toString());     // 참

// 이것이 허위 양성이고 isNaN이 완전히 신뢰할 수 없는 이유이다.
isNaN("blabla")   // 참: "blabla"는 숫자로 변환됩니다.
                  // 이것을 숫자롯 parsing 하는 것을 실패하고 NaN을 반환한다.

 

isSafeInteger()
MAX_VALUE
MIN_VALUE
NEGATIVE_INFINITY

 

NaN  Number.NaN

Not-a-Number 값을 나타낸다. legal한 숫자가 아니라는 것을 나타낸다.

더보기

* Number.NaN 프로퍼티와 같다. (the same. ===는 아님.)

* Global property에도 있다. 

 

NaN === NaN;        // false
Number.NaN === NaN; // false
isNaN(NaN);         // true
isNaN(Number.NaN);  // true

function valueIsNaN(v) { return v !== v; }
valueIsNaN(1);          // false
valueIsNaN(NaN);        // true
valueIsNaN(Number.NaN); // true

 

POSITIVE_INFINITY


prototype  Number.prototype.name = value

자바스크립트 numbers에 사로운 property나 메소드를 추가할 수 있게 해준다.

더보기

* property를 construct할 때, 모든 number들은 property와 그것의 값을 디폴트로 부여받는다.

* 메소드를 construct할 때, 모든 숫자들은 이 메소드가 available하다.

* Number.prototype은 하나의 number object를 뜻하는 것이 아니라, Number() object 그 자체를 뜻한다.

 

toExponential()


toFixed()  numObj.toFixed([digits])

숫자를 문자열로 변환하는데, specify된 갯수의 자릿수까지만 자른다.

더보기

리턴값: 정확한 갯수의 자릿수까지 가진 숫자를 나타내는 문자열

digits - 소수점 뒤 자릿수의 갯수 (디폴트: 0)

 

* 만약 numObj의 자릿수보다 큰 숫자를 digits에 넣으면, 그만큼 0이 추가된다.

 

var numObj = 12345.6789;

numObj.toFixed();       // Returns '12346': 반올림하며, 소수 부분을 남기지 않습니다.
numObj.toFixed(1);      // Returns '12345.7': 반올림합니다.
numObj.toFixed(6);      // Returns '12345.678900': 빈 공간을 0으로 채웁니다.
(1.23e+20).toFixed(2);  // Returns '123000000000000000000.00'
(1.23e-10).toFixed(2);  // Returns '0.00'
2.34.toFixed(1);        // Returns '2.3'
2.35.toFixed(1);        // Returns '2.4'. 이 경우에는 올림을 합니다.
-2.34.toFixed(1);       // Returns -2.3 (연산자의 적용이 우선이기 때문에, 음수의 경우 문자열로 반환하지 않습니다...)
(-2.34).toFixed(1);     // Returns '-2.3' (...괄호를 사용할 경우 문자열을 반환합니다.)

 

toLocaleString() 


toPrecision() numObj.toPrecision([precision])

숫자를 specify된 길이로 format한다.

더보기

리턴값: specify된 precision으로 format된 숫자를 나타내는 문자열

precision - digit의 수. (디폴트: format하지 않고 전체 숫자를 리턴한다.)

 

* 필요하다면 소수점이나 null이 추가된다.

 

var numObj = 5.123456;

console.log(numObj.toPrecision());    // logs '5.123456'
console.log(numObj.toPrecision(5));   // logs '5.1235'
console.log(numObj.toPrecision(2));   // logs '5.1'
console.log(numObj.toPrecision(1));   // logs '5'

numObj = 0.000123

console.log(numObj.toPrecision());    // logs '0.000123'
console.log(numObj.toPrecision(5));   // logs '0.00012300'
console.log(numObj.toPrecision(2));   // logs '0.00012'
console.log(numObj.toPrecision(1));   // logs '0.0001' 

 

toString() number.toString(radix)

숫자를 문자열로 변환한다.

더보기

리턴값: 숫자를 나타내는 문자열

radix - 몇 진법으로 변환할 것인가(2~36)

 

* String 메소드에도 있다.

 

const stringObj = new String('foo');

console.log(stringObj);
// expected output: String { "foo" }

console.log(stringObj.toString());
// expected output: "foo"

 

valueOf()  numObj.valueOf()

숫자의 primitive 값을 리턴한다.

더보기

리턴값: 숫자의 primitive 값을 나타내는 숫자

 

var numObj = new Number(10);
console.log(typeof numObj); // object

var num = numObj.valueOf();
console.log(num);           // 10
console.log(typeof num);    // number

 

 

 

< 출처 >

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Number

 

Number

Number 객체는 숫자 값으로 작업할 수 있게 해주는 래퍼wrapper 객체입니다. Number 객체는 Number() 생성자를 사용하여 만듭니다. 원시 숫자 자료형은 Number() 함수를 사용해 생성합니다.

developer.mozilla.org

https://www.w3schools.com/jsref/jsref_obj_number.asp

 

JavaScript Number Reference

JavaScript Number Reference JavaScript Numbers JavaScript has only one type of number. Numbers can be written with, or without, decimals: Example var x = 3.14;     // A number with decimals var y = 34;       // A number without decimals Try it Yo

www.w3schools.com

 

댓글