ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [표준객체] - Number 메소드
    JavaScript/기본 1 2022. 2. 7. 14:51
    • Number.parseFloat( ) 메소드 - 사파리 / 익스플로러 지원하지 않는다.
      • 문자열 파싱하여 문자열에 포함된 숫자 부분을 실수 형태로 반환
      • 여러 개의 숫자가 존재하면, 첫 번째 숫자만을 실수형태로 반환
      • Number.parseFloat("12");  // 12
        Number.parseFloat("12.34");  // 12.34
        Number.parseFloat("12문자열");  // 12
        Number.parseFloat("12 34 56");  // 12
        Number.parseFloat("문자열 56");  // NaN
    • Number.parseInt( ) 메소드 - 사파리 / 익스플로러 지원하지 않는다.
      • 문자열 파싱하여 문자열에 포함된 숫자 부분을 정수 형태로 반환
      • 여러 개의 숫자가 존재하면, 첫 번째 숫자만을 정수 형태로 반환
      • Number.parseInt("12");  // 12
        Number.parseInt("12.34"); // 12
        Number.parseInt("12문자열");  // 12
        Number.parseInt("12 34 56");  // 12
        Number.parseInt("문자열 56");  // NaN
    • Number.isNaN( ) 메소드 - 익스플로러 지원하지 않는다.
      • 전달된 값이 NaN인지 아닌지 검사
      • 숫자인 값에서만 동작
      • 값이 NaN인 경우에만 true반환
      • Number.isNaN(NaN);  // true
        Number.isNaN(0 / 0);  // true
        
        // 전역함수인 isNaN()에서 잘못된 결과를 반환하는 예제
        isNaN("NaN");  // true
        isNaN(undefined);  // true
        isNaN("문자열");  // true
        
        // Number.isNaN() 메소드에서 맞는 결과를 반환하고 있음
        Number.isNaN("NaN");  // false
        Number.isNaN(undefined);  // false
        Number.isNaN("문자열");  // false
    • Number.isFinite( ) 메소드 - 익스플로러 지원하지 않는다.
      • 전달된 값이 유한한 수인지 아닌지 검사
      • 셀 수 있는 값에서만 동작, 유한한 경우 true반환
      • Number.isFinite(0);  // true
        Number.isFinite(3e45);  // true
        Number.isFinite(Infinity);  // false
        Number.isFinite(NaN);  // false
        
        // 전역함수인 isFinite()에서 잘못된 결과를 반환하는 예제
        isFinite("0"); // true, 숫자로 강제 변환
        isFinite(null);  // true
        
        // Number.isFinite()메소드에서는 맞는 결과를 반환
        Number.isFinite("0");  // false
        Number.isFinite(null);  // false
        
        
        // 전역함수 isFinite()처럼 전달된 값을 숫자로 강제 변환하지 않는다.
    • Number.isInteger( ) 메소드 - 익스플로러 지원하지 않는다.
      • 전달된 값이 정수인지 아닌지 검사
      • Number.isInteger(0);  // true
        Number.isInteger(-100);  // true
        Number.isInteger(0.1);  // false
        Number.isInteger("문자열");  // false
        Number.isInteger(Infinity);  // false
        Number.isInteger(true);  // false
    • Number.isSafeInteger( ) 메소드 - 사파리 / 익스플로러 지원하지 않는다.
      • 전달된 값이 안전한 정수(safe integer)인지 아닌지 검사
      • 안전한 정수란?
        • IEEE754국제 표준에서 정의한 64비트 부동 소수점 수로 정확히 표현되는 정수 의미
        • -(253-1) ~ (253-1)까지 모든 정수
        • Number.isSafeInteger(10);  // true
          Number.isSafeInteger(Math.pow(2, 53) -1);  // true
          Number.isSafeInteger(Math.pow(2, 53));  // false
          Number.isSafeInteger(Infinity);  // false
          Number.isSafeInteger(NaN);  // false
          Number.isSafeInteger(3.14);  // false
    Number.prototype 메소드

    모든 Number인스턴스는 Number.prototype으로부터 메소드와 프로퍼티를 상속받는다.

    [대표 메소드]
    Number.prototype.toExponential( )
    Number.prototype.toFixed( )
    Number.prototype.toPrecision( )
    Number.prototype.toString( )
    Number.prototype.valueOf( )
    • toExponential( )메소드
      • Number 인스턴스의 값을 지수 표기법으로 변환한 후, 그 값을 문자열로 반환
      • 전달받은 값은 지수 표기법에서 소수 부분의 자릿수로 사용된다.
      • // 원형
        
        numObj.toExponential([소수부분의 자릿수])
      • // 예제
        
        var num = 12.3456;  // Number 인스턴스를 생성함
        num.toExponential();  // 1.23456+1
        num.toExponential(2);  // 1.23e+1
        num.toExponential(4);  // 1.2346e+1
        12.3456.toExponential();  // 1.23456e+1
    • toFixed( ) 메소드
      • Number 인스턴스의 소수 부분 자릿수를 전달받은 값으로 고정한 후, 그 값을 문자열로 반환
      • // 원형
        
        numObj.toFixed([소수부분의 자릿수])
      • // 예제
        
        var num = 3.14159265;  // Number 인스턴스를 생성함
        num.toFixed();   // 3
        num.toFixed(2);  // 3.14
        num.toFixed(4);  // 3.1416
        3.14159265.toFixed(6);  // 3.141593
    • toPrecision( ) 메소드
      • Number 인스턴스의 가수와 소수 부분을 합친 자릿수를 전달받은 값으로 고정한 후, 그 값을 문자열로 반환
      • // 원형
        
        numObj.toPrecision([전체자릿수])
      • // 예제
        
        var num = 3.14159265;  // Number 인스턴스를 생성함
        num.toPrecision();  // 3.14159265
        num.toPrecision(2);  // 3.1
        num.toPrecision(4);  // 3.142
        3.14159265.toPrecision(6);  // 3.14159
    • toString( ) 메소드
      • Number 인스턴스의 값을 문자열로 반환
      • 전달받은 값에 해당하는 진법으로 우선 값을 변환한 후, 그 값을 문자열로 반환
      • 사용 시 주의사항
        • 반드시 괄호( ) 사용해서 숫자 리터럴을 감싸준다.
        • 그렇지 않으면 SyntaxError 발생
      • // 원형
        
        numObj.toString([진법])
      • // 예제
        
        var num = 255;  // Number 인스턴스를 생성함
        num.toString();  // 255
        (255).toString();  // 255
        (3.14).toString();  // 3.14
        num.toString(2);  // 11111111, 2진법 변환
        (100).toString(16);  // 64
        (-0xff).toString(2);  // -11111111
    • valueOf( ) 메소드
      • Number 인스턴스가 가지고 있는 값을 반환
      • // 원형
        
        numObj.valueOf()
      • // 예제
        
        var numObj = new Number(123);  // 123의 값을 가지는 Number 인스턴스를 생성함
        typeof numObj;  // object
        var num = numObj.valueOf();
        num;  // 123
        typeof num;  // number
Designed by Tistory.