(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 |