-
[자바스크립트 비기너] Number 오브젝트개인 공부/JavaScript 2021. 11. 5. 00:00
1. Number 오브젝트 개요, 프로퍼티 리스트
Number 오브젝트
- 숫자 처리를 위한 오브젝트
- 즉, 숫자 처리를 위한 함수와 프로퍼티가 포함되어 있고, 함수를 호출하여 숫자 처리를 하게 된다.
- 빌트인 오브젝트를 완전하게 사용하기 위해서는 함수와 프로퍼티를 알아야 한다.
프로퍼티 리스트
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Number 참고
*toString()
함수는 숫자 값을 문자열로 변환한다. 숫자 값을 문자열로 변환한다는 것은 목적, toString()은 수단이다. 수단을 기준으로 접근해라!
* 프로퍼티 리스트 내프리미티브 값
은 인스턴스에 설정된 값을 의미한다.
* 빌트인 함수에서 변환을 위한 함수들의 이름은 모두to
로 시작한다.
2. Number 타입으로 변환, Number 상수
Number()
구분 데이터(값) 파라미터 변환할 값(opt) 반환 변환한 값 - 파라미터 값을 Number 타입으로 변환한다.
- 파라미터 값이 String 타입이어도 값이 숫자이면 변환할 수 있다.
- 숫자로 변환할 수 있으면 변환한다. (ex. true는 1, null은 0, 파라미터 값을 작성하지 않으면 0)
- 숫자로 변환할 수 없거나 변환했는데 숫자가 아닌 경우
NaN
을 반환한다. (ex. undefined)
Number 상수
- MAX_VALUE, MIN_VALUE, NaN, POSITIVE_INFINITY, NEGATIVE_INFINITY
- 값을 변경, 삭제할 수 없다.
- 영문 대문자를 사용하는 것이 관례이다.
Number.MAX_VALUE
형태로 값을 사용한다.
3. 인스턴스 생성 방법/목적, new 연산자
new 연산자
구분 데이터(값) constructor 생성자 파라미터 값(opt) 반환 생성한 인스턴스 - 오브젝트로 인스턴스를 생성하여 반환한다.
- 이는 원본을 복사하는 개념이다.
var obj = new Number()
: new 연산자를 이용하여 함수를 호출한 것이다. 이때 호출되는 것을 생성자라고 한다.- 생성한 인스턴스 타입은 object(소문자)이다.
- 코딩 관례로 첫 문자를 대문자로 작성한다.
- 인스턴스 생성 목적: 인스턴스마다 갖기 위한 것이다.
4. Number 인스턴스 생성, 인스턴스 형태
new Number()
인스턴스를 만들면 빌트인 오브젝트에 있는 프로퍼티들이 하나도 전달되지 않는다.
단,__proto__
를 전개해보면 7개의 함수가 있다. 이것들은prototype
에 있다.
인스턴스를 만드는 기준은prototype
이라는 오브젝트이다. 이것에 연결되어 있는 함수들만 인스턴스에 할당된다.
나머지는 가려서 복사된다. 원본에서 가져와야 한다.
이때__proto__
도 오브젝트이다. 이 오브젝트에 넣어서 주겠다는 것이다.
5. 프리미티브 값, 프리미티브 타입, 프리미티브 값 구하기
프리미티브 값
Primitive Value
- 언어에 있어 가장 낮은 단계의 값
var book = "책";
에서 "책"은 더 이상 분해하거나 전개할 수 없다.
프리미티브 타입
- Number, String, Boolean: 인스턴스 생성 가능
- Null, Undefined: 인스턴스 생성 불가
- Object는 프리미티브 값을 제공하지 않는다. (오브젝트를 펼치면 다른 프로퍼티들이 존재한다.)
인스턴스의 프리미티브 값
- 인스턴스를 만들면 파라미터에 작성된 값을 값으로 사용하고 PrimitiveValue라는 이름을 자바스크립트 엔진이 붙인다.
- 프리미티브 값을 갖는 오브젝트: Boolean, Date, Number, String
var obj = new Number(123); console.log(obj + 200); // 123 + 200
- 인스턴스와 숫자를 더하는 것이 가능하다.
- 이는 123을 인스턴스의 프리미티브 값으로 설정하기 때문이다.
- 프리미티브 값을 갖는 인스턴스에 값을 더하면 인스턴스의 프리미티브 값에 값을 더한다.
valueOf()
- Number 인스턴스의 프리미티브 값을 반환한다.
var obj = new Number("123"); console.log(obj.valueOf()); // 123
6. String 타입으로 변환, 지역화 문자
toString()
- data를 String 타입으로 변환한다.
변환시 주의 사항
console.log((20).toString());
20.toString()
형태로 작성하면 에러가 난다.- 20이 아니라 20. (20.0)을 변환 대상으로 인식하기 때문이다.
toLocaleString()
- 숫자를 브라우저가 지원하는 지역화 문자로 변환한다.
- 여기서 지역화란 한국, 중국 등의 지역에서 사용하는 문자를 뜻한다.
- 지역화 지원 및 형태는 브라우저마다 차이가 날 수 있다.
- 지역화를 지원하지 않으면
toString()
으로 반환한다. - ES5에서는 파라미터 사용이 불가하고, ES6에서는 파라미터에 언어 타입을 사용할 수 있다.
7. 지수 표기, 고정 소숫점 표기
toExponential()
- 숫자를 지수 표기로 변환하여 문자열로 반환한다.
- 파라미터에 소수 이하 자릿수를 작성한다(0~20)
표시 방법
- 변환 대상의 첫 자리만 소수점(.) 앞에 표시한다.
- 나머지는 소수 아래에 표시한다.
- 지수(e+) 다음에 정수에서 소수로 변환된 자릿수를 표시한다.
var value = 1234; console.log(value.toExponential()); // 1.234e+3 // 소수점 3자리만 표시하라 (234) // 2345에서 3자리로 표시할 때 5가 반올림된다 var value = 123456; console.log(value.toExponential(3)); // 1.235e+5
toFixed()
- 고정 소숫점 표기로 변환하여 문자열로 반환한다.
- 파라미터에 소수 이하 자릿수를 작성한다. (0~20)
표시 방법
- 파라미터 값보다 소수 자릿수가 길면 작성한 자릿수에 1을 더한 위치에서 반올림한다.
- 변환 대상 자릿수보다 파라미터 값이 크면 나머지를 0으로 채워 반환한다.
var value = 1234.567; console.log(value.toFixed(2)); // 1234.57 // 파라미터 값을 작성하지 않으면 0으로 간주하여 소수 첫째 자리에서 반올림하여 정숫값을 표시한다. console.log(value.toFixed()); // 1235 // 모자라는 자릿수에 0을 첨부하여 표시한다 var value = 1234.567; console.log(value.toFixed(5)); // 1234.56700
'개인 공부 > JavaScript' 카테고리의 다른 글
[자바스크립트 비기너] Object 오브젝트 (0) 2021.11.11 [자바스크립트 비기너] String 오브젝트 (0) 2021.11.05 [자바스크립트 비기너] 오브젝트, 빌트인 (0) 2021.11.04 [자바스크립트 비기너] 문장(Statement), 함수(Function) (0) 2021.10.14 [자바스크립트 비기너] 연산자(Operator) (0) 2021.10.14