본문 바로가기
javascript

Number 오브젝트 인스턴스 생성방법/목적, new연산자

by rami_ 2021. 9. 13.

new 연산자

구분 데이터(값)
constructor 생성자
파라미터 값 opt
반환 생성한 인스턴스

오브젝트로 인스턴스를 생성하여 반환

 원본을 복사하는 개념

 new연산자를 사용하면 인스턴스

var obj = new Number(); //Number가 오브젝트. obj에 인스턴스 할당. 함수가 호출될 때 그걸 생성자라고 함.

log(typeof obj); //object (Object는 keyvalue의 집합. object는 인스턴스)

 코딩관례로 첫 문자를 대문자로 작성.

 

인스턴스 생성 목적

 인스턴스마다 값을 갖기 위한것.

oneObj에 123을 저장함.

var oneObj = new Number("123");

log(oneObj.valueOf()); //vlaueOf 메소드는 숫자를 숫자로 반환함. 123

var twoObj = new Number("456");

log(twoObj.valueOf());

 

Number 인스턴스 생성

new Number()

구분 데이터(값)
파라미터 값opt
반환 생성한 Number 인스턴스

빌트인 Number 오브젝트로 새로운 Number 인스턴스를 생성.

var obj = new Number("123");

log(obj.valueOf()); //123

 

 

프리미티브 값

Primitive Value

언어에 있어 가장 낮은 단계의 값.

var book = "책"; (책은 더이상 분해, 전개 불가)

프리미티브 타입.

 Number, String, Boolean : 인스턴스 생성 가능

 Null, Undefined : 인스턴스 생성 불가

 Object는 프리비티브 값을 제공하지 않음.

파라미터 값에 이름을 붙여주지 않으면 자바스크립트 엔진이 임의로 부여. [[PrimitiveValue]]

인스턴스의 프리미티브 값.

var obj = new Number(123);

 인스턴스를 생성하면 파라미터 값을 인스턴스의 프리미티브 값으로 설정.

피리미티브 값을 갖는 오브젝트 : Boolean, Date, Number, String

var obj = new Number(123);

log(obj + 200) //new Number(123) 인스턴스 생성. obj가 인스턴스이므로 값을 더할 수 없는데 값이 더해지는 것은 123을 인스턴스의 프리미티브(초기)값으로 설정하기 때문. 피리미티브 값을 갖는 인스턴스에 값을 더하면 인스턴스의 프리미티브 값에 값을 더함.

 

valueOf()

구분 데이터(값)
data Number 인스턴스, 숫자
파라미터 사용하지 않음
반환 프리미티브 값

Number인스턴스의 프리미티브값 반환.

var obj = new Number("123");

log(obj.valueOf()); // 문자열을 숫자로 반환함. 123

 

String 타입으로 변환

toString()

구분 데이터(값)
data 변환 대상
파라미터 진수(2~36)opt, 디폴트 : 10진수 
반환 변환한 값

data를 String타입으로 변환.

var value = 20;

log(20 === value.toString()); // false. 20은 number인데 string타입으로 변환했으니 완전히 같지 않음.

log(value.toString.(16)); //20을 16진수로 변환하여 값은 14

 

유동 소수점 사용.

log(20..toString()); // 20.toString()형태로 작성하면 에러가 남. 20이 아니라 20.(0)을 변환대상으로 인식하므로 .이 없는 valuetoString() 형태가 되기 때문. 코드처럼 20..을 작성해야함.

 

toLocaleString()

구분 데이터(값)
data 변환대상
파라미터 사용하지 않음
반환 변환한 값

숫자를 브라우저가 지원하는 지역화문자로 변환.

 지역화 지원 및 형태를 브라우저 개발사에 일임.

 지역화를 지원하지 않으면 toString()으로 변환

스펙상태

 ES5 : 파라미터 사용불가

 ES6 : 파라미터에 언어타입 사용가능.

var value = 1234.56;

log(value.toLocaleString()); //1,234.56

log(value.toLocaleString('de-DE')); //de-DE(독일) 작성. 콤마를 점으로 점을 콤마로 표시. 1.234,56

log(value.toLocaleString('zh-Hans-CN-u-nu-hanidec')); //한자로 표기 

 

지수표기

toExponential()

구분 데이터(값)
data 변환대상
파라미터 소수 이하 자릿수(0~20)
반환 변환한 값

숫자를 지수 표기로 변환하여 문자열로 반환

 파라미터에 소수 이하 자릿수 작성 (0~20까지)

표시방법

 변환대상의 첫자리만 소수점 앞에 표시

 나머지는 소수아래에 표시

 지수(e+) 다음에 정수에서 소수로 변환된 자릿수 표시

var value = 1234;

log(value.toExponential()); // 파라미터에 값을 작성하지 않으면 1234에서 1을 소수점 앞에 표시하고 1.234처럼 234를 소수에 표시함. 이어서 e+를 표시하고 정수에 소수로 변환된 자릿수를 표시. 234 세자리이므로 3이 표시됨. 1.234e+3

var value = 123456;

log(value.toExponential(3)); // 파라미터에 3을 작성했으므로 1.234e+5로 작성되어야 하지만 1.235e+5로 표시된것은 2345에서 3자리로 표시할 때 반올림을 하기 때문. 

 

toFixed()

구분 데이터(값)
data 변환대상
파라미터 반환할 소수 이하 자릿수
반환 변환한 값

고정 소숫점 표기로 변환하여 문자열로 반환

 파라미터에 소수 이하 자릿수 작성(0~20)

표시 방법

 파라미터 값보다 소수 자릿수가 길면 작성한 자릿수에 1을 더한 위치에서 반올림.

var value = 1234.567;

log(value.toFixed(2)); // 1234.56인데 7을 반올림시켜 1234.57이 됨.

log(value.toFixed()); // 파라미터 값을 작성하지 않으면 0으로 간주하여 소수 첫째자리에서 반올림하여 표시. 1235

 변환대상 자릿수보다 파라미터 값이 크면 나머지를 0으로 채우 반환.

var value = 1234.567;

log(value.toFixed(5)); // 소수자릿수는 3. 파라미터 값은 5. 모자라는 자릿수에 0을 첨부하여 표시함. 1234.56700

'javascript' 카테고리의 다른 글

String length  (0) 2021.09.16
String 오브젝트  (0) 2021.09.14
Number 오브젝트  (0) 2021.09.12
built-in  (0) 2021.09.12
프로퍼티 값 추출, for~in문  (0) 2021.09.12