(21.09.05) ParseInt vs Number

도깨비젤리

·

2021. 9. 5. 01:26

작은 지식이라도, 하루에 하나씩.


 

한 줄 요약


🦄둘 다 arguments를 Number 타입으로 바꿔주는 함수🦄
🦄 parseInt는 string 타입만을 받아, Number 타입으로 바꿀 수 있는 부분만을 반환한다🦄
🦄Number 함수는 argument의 타입에 신경쓰지 않지만, Number로 변환할 수 없다면 NaN을 반환한다🦄

 

 

본문


나는 문자를 숫자로 바꿔야할 때 parseInt만을 써왔다. 뭐 딱히 이유라고 할만한건 없고, 그냥 그거밖에 몰랐기 때문이다.

정확히 말하자면, Number의 존재는 알고 있었는데 굳이?? 라는 생각이였기에, Number의 존재는 내 기억 속에서 잊혀져 갔다.

 

근데 이번에도 "모든 상황에 들어맞는 황금열쇠는 없다" 라는 말이 적중했다. 회사에서 어떤 요청의 응답을 숫자로 바꾼다음 연산을 해야하는 코드를 짜야했는데, 이 응답의 type이 string | Object 로 선언되어 있어서 parseInt를 쓰려고 하니까 IDE가 object에는 parseint를 쓸 수 없다는 불같은 에러를 뿜어내었다.

 

그래서 Number로 형변환을 해주었는데, 이번 기회에 두 함수의 차이를 알아보려고 한다.

 

 

// parseInt syntax
parseInt(string, radix)

// parseInt는 말 그대로 문자열을 읽어서 (parse) 가능한 부분만 반환한다
parseInt("20px");       // 20
parseInt("10100", 2);   // 20
parseInt("2e1");        // 2

// Number syntax

Number(value)

//Number는 형 변환을 해주는 함수이다. 십진법이 아니더라도, 숫자로 간주 될 수 있으면 반환하고
// 숫자가 아닌 친구들은 NaN으로 반환한다
Number("20px");       // NaN
Number("2e1");        // 20, exponential notation


// Number는 숫자로 작업할 수 있게 해주는 Wrapper 객체이다.
typeof new Number("123") => object (Number primitive wrapper object)

// 쉽게 말해서 value를 Number 자료형으로 재생성해주는 함수라고 볼 수 있겠다

'TIL' 카테고리의 다른 글

(21.09.07)React fast-reload  (0) 2021.09.07
(21.09.05) Promise에 관하여  (0) 2021.09.06
(21.09.01) Moment.js  (0) 2021.09.01
(21.08.31)ES6 Class  (0) 2021.08.31
(21.08.04) Material-ui Default theme의 type  (0) 2021.08.04