ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [자바스크립트 비기너] 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

    댓글

Designed by Tistory.