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 |