반응형

# 자바스크립트 학습

# Number 인스턴스 생성

  • new Number() : new 연산자로 Number() 생성자 함수를 호출하면, 빌트인 Number 오브젝트로 새로운 Number 인스턴스를 생성하여 반환한다.
구분 데이터(값)
파라미터 값opt
반환 생성한 Number 인스턴스
var obj = new Number("123");
log(obj.valueOf());

=>
123
  • 인스턴스의 형태 : prototype 오브젝트를 기준으로, prototype에 연결되어 있는 함수를 복사하여 인스턴스에 할당한다. prototype이 아닌 다른 것들은 인스턴스에 복사해 주지 않는다. (빌트인 Number 오브젝트를 복사해서 할당하는데, prototype에 있는 것만 할당한다.) 이때, 다른 것과의 혼동을 줄이기 위해 __proto__ 에 값을 넣어 전달한다.

# 프리미티브 값 (Primitive Value)

  • 언어에 있어 가장 낮은 단계의 값 (더이상 분해 or 전개할 수 없다.)
var book = "책";

=> 더이상 분해 or 전개 불가능

## 프리미티브 타입

  • Number, String, Boolean : 인스턴스 생성 가능
  • Null, Undefined : 인스턴스 생성 불 가능
  • Object : 프리미티브 값을 제공하지 않는다.
var book = "책";
var point = 123;

=>
book = "책"
point = 123
더이상 전개 불가능. key-value의 형태.

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

  • new 연산자를 이용하여 Number 생성자 함수를 호출하면, 인스턴스를 생성하여 반환하고, 파라미터 값을 인스턴스의 프리미티브 값으로 설정한다.
var obj = new Number(123);
  • 프리미티브 값을 갖는 오브젝트 : Number, Boolean, Date, String 등이 있다.
var obj = new Number(123);
log(obj + 200);

=>
323
프리미티브 값을 갖는 인스턴스에 값을 더하면 인스턴스는 프리미티브 값에 값을 더한다.

## valueOf()

구분 데이터(값)
data Number 인스턴스, 숫자
파라미터 사용하지 않음
반환 프리미티브 값
  • Number 인스턴스의 프리미티브 값을 반환한다.
var obj = new Number("123");
log(obj.valueOf());

=>
123

# String 타입으로 변환

## toString()

구분 데이터(값)
data 변환 대상
파라미터 진수(2-36)opt, 디폴트: 10진수
반환 변환한 값
  • data를 String 타입으로 변환 (변환 대상을 String 타입으로 변환)
var value = 20;
log(20 === value.toString());

log(value.toString(16));

=>
false
14
  • 변환할 때 주의 사항
log(20..toString());

=>
20
20.toString() 형태로 작성 시 에러 발생
20이 아니라 20.을 변환 대상으로 인식하므로, 점(.)이 없는 valuetoString() 형태가 되기 때문
20. 을 자바스크립트에서는 실수로 처리(20.0)

## toLocaleString()

구분 데이터(값)
data 변환 대상
파라미터 사용하지 않음
반환 변환한 값
  • 숫자를 브라우저가 지원하는 지역화 문자로 변환
  • 지역화 지원 및 형태를 브라우저 개발사에 일임하여 브라우저마다 조금씩 차이가 날 수 있다.
  • 지역화를 지원하지 않으면 toString()으로 변환한다.(지역화를 지원하지 않을 경우 문자열로 변환하여 반환)
  • 스펙 상태 : ES5는 파라미터 사용 불가능 / ES6는 파라미터에 언어 타입 사용 가능
var value = 1234.56;
log(value.toLocaleString());	// 한국에서 사용하는 형태(3자리마다 콤마 사용)
log(value.toLocaleString('de-DE'));		// 독일에서 사용하는 형태(콤마을 점으로, 점을 콤마로 표시)
log(value.toLocaleString('zh-Hans-CN-u-nu-hanidec));	// 중국에서 사용하는 형태(한자)

=>
1,234.56
1.234,56
一, 二三四.五六

# 지수 표기, 고정 소숫점 표기

## toExponential(0

구분 데이터(값)
data 변환 대상
파라미터 소수 이하 자릿수(0~20)
반환 변환한 값
  • 숫자를 지수 표기로 변환하여 문자열로 반환
  • 파라미터에 소수 이하 자릿수를 작성한다. (0에서 20까지)
var value = 1234;
log(value.toExponential());

=>
1.234e+3

## toExponential() 지수 표기 표시 방법

  • 변환 대상의 첫 자리만 소수점(.)앞에 표시
  • 나머지는 소수 아래에 표시
var value = 123456;
log(value.toExponential(3));	// 소수 이하 3자리만 표시

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

## toFixed()

구분 데이터(값)
data 변환 대상
파라미터 변환할 소수 이하 자릿수
반환 변환한 값
  • 고정 소숫점 표기로 변환하여 문자열로 반환
  • 파라미터에 소수 이하 자릿수 작성 (0에서 20까지)
var value = 1234.567;
log(value.toFixed(2));
log(value.toFixed());

=>
1234.57
1235

## toFixed() 고정 소숫점 표시 방법

  • 파라미터 값보다 소수 자릿수가 길면 작성한 자리수에 1을 더한 위치에서 반올림
  • 변호나 대상 자릿수보다 파라미터 값이 크면 나머지를 0으로 채워 반환
var value = 1234.567;
log(value.toFixed(5));

=>
1234.56700
반응형

+ Recent posts