@ Number ==> 숫자를 표현하고 다룰 때 사용하는 원시 래퍼 객체이다.
[원시 값] - primitive or 원시 자료형, 객체가 아니면서 메서드도 가지지 않는 데이터. 원시 값에는 string, number, bigint, boolean, undefined, symbol 그리고 null까지 7종류가 존재한다.
Number 생성자는 숫자를 다루기 위해 상수와 메소드를 가지고 있다. Java 또는 C#의 double타입처럼 IEEE754 64비트 바이너리 배정 밀도값이다. 분수 값을 나타낼 수 있지만 저장할 수 있는 값에는 몇 가지 제한이 있다. 소수점 이하 17자리 정도만 유지하며 산술은 반올림의 대상이 된다. Number가 가질 수 있는 가장 큰 값은 1.8e308이다. 이 값보다 큰 값으 특별한 Number 상수인 Infinity로 대체된다.
Number(value)처럼 함수로 사용하면 문자열이나 다른 값을 Number타입으로 변환된다. 인수를 숫자로 변환할 수 없다면 NaN을 return한다.
Number('123'); // 숫자 123을 반환
Number('123') === 123; // 참
Number('unicorn'); // NaN
Number(undefined); // NaN
<Constructor>
Number() ==> 새로운 Number값을 생성한다.
Number('123'); // 123
Number('123') === 123; // true
Number('12.3'); // 12.3
Number('12.00'); // 12
Number('123e-1'); // 12.3
Number(''); // 0
Number(null); // 0
Number('0x11'); // 17 //리터럴 형식
Number('0b11'); // 3
Number('0o11'); // 9
Number('foo'); // NaN
Number('100a'); // NaN
Number('-Infinity'); // -Infinity
[참조]
Number - JavaScript | MDN
Number 생성자는 숫자를 다루기 위해 상수와 메소드를 가지고 있습니다. 다른 타입의 값은 Number() 함수를 사용하여 숫자로 바꿀 수 있습니다.
developer.mozilla.org
@ parseInt ==> paresInt()함수는 문자열 인자를 파싱하여 특정 진수(수의 진법 체계에서 기준이 되는 값)의 정수를 반환한다.
parseInt(string)
parseInt(string, radix)
string ==> 파싱할 값, 문자열이 아닐 겨우 toString 추상 연산을 사용해 문자열로 변환해서 사용한다. 문자열의 선행 공백은 무시한다.
radix ==> string의 진수를 나타내는 2부터 36까지의 정수, 기본값이 10이 아니다. Number자료형이 아닌 경우 Number로 변환한다.
[반환 값]
주어진 string에서 파싱한 정수
다음과 같은 경우에는 NaN을 반환
- radix가 2보다 작거나 36보다 큰 경우
- 공백이 아닌 첫 문자를 숫자로 변환할 수 없는 경우
parseInt 함수는 첫 번째 인자를 지정한 radix진수로 표현한 정수를 반환하고, 그 값을 파싱하여 정수나 NaN을 반환한다.
radix가 10을 초과하는 경우, 영문 알파벳이 9보다 큰 숫자를 나타낸다. 16진수에서는 A부터 F까지를 사용한다.
일부 숫자는 6.022e23처럼 문자열 표현에 e문자를 사용한다. 이를 매우 크거나 매우 작은 숫자의 소수점 이하 값을 자르기 위해 사용하면 예기치 못한 결과가 발생한다. 따라서 parseInt를 Math.floor()의 대체품으로 사용해서는 안된다.
parseInt는 양의 부호+와 음의 부호-를 인식한다. 부호 인식은 선후행 공백을 제거한 후 첫 번째 단계로서 수행된다. 부호를 찾을 수 없으면 알고리즘은 다음 단계로 넘어간다. 부호를 찾은 경우 부호를 제거하고, 나머지 문자열에 대해 숫자 파싱을 진행한다.
NaN값은 모든 진수에서 숫자가 아니다. 따라서 parseInt의 결과가 NaN인지 확인하려면 isNaN을 사용하면 된다. NaN을 산술 연산에 사용하면 연산 결과 억시 NaN이 된다.
숫자를 특정 진수의 문자열 리터럴로 변환하려면 number.toString(radix)를 사용하면 된다.
[참조]
parseInt() - JavaScript | MDN
parseInt() 함수는 문자열 인자를 파싱하여 특정 진수(수의 진법 체계에서 기준이 되는 값)의 정수를 반환합니다.
developer.mozilla.org
@ 결론
정수를 파싱하고 싶을 때는 parseInt를 사용하는 것이 맞다. Number는 문자열 전체가 숫자일 때 소수점까지 number타입으로 가져올 수 있다. 또한 parseInt는 문자열의 정수값을 파싱하는 것이고 Number는 문자열뿐만 아니라 여러 형태의 타입도 숫자로 반환하는 것이다.
개념을 정확히 이해하고 적절한 부분에서 사용하는 것이 중요해 보인다. 원하는 값이 무엇인지 정확히 파악해서 적절히 사용해보자.
'JavaScript Dev. > Javascript' 카테고리의 다른 글
11. 실행 컨텍스트(스코프, 변수, 객체, 호이스팅) (0) | 2023.10.11 |
---|---|
10. 데이터 타입 (0) | 2023.04.21 |
2023.04.12 - <2주차 과제> (0) | 2023.04.12 |
9. Map과 Set (0) | 2023.04.10 |
2023.04.05 - <1주차 과제> (0) | 2023.04.09 |