>  기사  >  웹 프론트엔드  >  JavaScript 네이티브 개체_javascript 기술의 Number 개체의 속성 및 메서드에 대한 자세한 설명

JavaScript 네이티브 개체_javascript 기술의 Number 개체의 속성 및 메서드에 대한 자세한 설명

WBOY
WBOY원래의
2016-05-16 16:09:351772검색

Number 객체 생성 구문:

코드 복사 코드는 다음과 같습니다.

var myNum = 새 숫자(값);
var myNum = 숫자(값);

Number()가 new 연산자와 함께 생성자로 사용되면 새로 생성된 Number 객체를 반환합니다. new 연산자를 사용하지 않고 Number()를 함수로 호출하면 해당 인수가 기본 숫자로 변환되고 이 값(또는 변환이 실패할 경우 NaN)이 반환됩니다.

MAX_VALUE

MAX_VALUE 속성은 JavaScript에서 표현할 수 있는 가장 큰 숫자입니다. 대략적인 값은 1.7976931348623157 x 10308입니다. 가장 큰 음수는 -MAX_VALUE입니다.

MAX_VALUE보다 큰 숫자는 무한대입니다. MAX_VALUE는 정적 속성이므로 호출 메서드는 Number.MAX_VALUE여야 합니다.

코드 복사 코드는 다음과 같습니다.

console.log(Number.MAX_VALUE) //1.7976931348623157e 308

MIN_VALUE

MIN_VALUE 속성은 JavaScript에서 표현할 수 있는 가장 작은 숫자입니다(0에 가까우나 음수는 아님). 대략적인 값은 5 x 10-324입니다.

MIN_VALUE보다 작은 모든 숫자는 0으로 변환됩니다.

MIN_VALUE는 정적 속성이므로 호출 메서드는 Number.MIN_VALUE여야 합니다.

NaN

NaN 속성은 숫자가 아닌 값을 나타내는 특수 값입니다. 이 속성은 값이 숫자가 아님을 나타내는 데 사용됩니다. 숫자 개체를 이 값으로 설정하여 숫자 값이 아님을 나타낼 수 있습니다.

isNaN() 전역 함수를 사용하여 값이 NaN 값인지 확인할 수 있습니다.

Number.NaN은 특정 산술 연산(예: 음수의 제곱근 찾기)의 결과가 숫자가 아님을 나타내는 특수 값입니다. 지정된 문자열을 구문 분석할 수 없을 때 메서드parInt() 및parseFloat()는 이 값을 반환합니다. 일반적으로 유효한 숫자를 반환하는 일부 함수의 경우 이 메서드를 사용하고 Number.NaN을 사용하여 오류 조건을 나타낼 수도 있습니다.

JavaScript는 Number.NaN을 NaN으로 출력합니다. NaN은 자신을 포함한 다른 숫자와 비교할 때 항상 동일하지 않습니다. 따라서 값이 숫자인지 테스트하기 위해 Number.NaN과 비교할 수는 없으며 비교를 위해 isNaN()만 호출할 수 있습니다.

참고: 전역 변수 NaN은 Number.NaN과 동일하며 구성 및 수정이 불가능한 속성입니다.

코드 복사 코드는 다음과 같습니다.

console.log(parseInt("abc")); //NaN
console.log(NaN === NaN); //false
console.log(Number.NaN === NaN); //false
console.log(isNaN(NaN)); //참
console.log(isNaN(Number.NaN)); //true

NEGATIVE_INFINITY

NEGATIVE_INFINITY 속성은 -Number.MAX_VALUE보다 작은 값을 나타냅니다. 이 값은 음의 무한대를 나타냅니다.

JavaScript는 NEGATIVE_INFINITY를 표시할 때 -Infinity를 사용합니다. 이 값의 산술 동작은 무한대와 매우 유사합니다. 예를 들어, 무한대로 곱한 숫자는 여전히 무한대가 되고, 무한대로 나눈 숫자는 0이 됩니다.

-무한대는 Number.NEGATIVE_INFINITY와 같습니다.

코드 복사 코드는 다음과 같습니다.

var x = (-Number.MAX_VALUE) * 2;
var y = 숫자.NEGATIVE_INFINITY;
console.log(x); //-무한대
console.log(y); //-무한대
console.log(x===y); //참

POSITIVE_INFINITY

POSITIVE_INFINITY 속성은 Number.MAX_VALUE보다 큰 값을 나타냅니다. 이 값은 양의 무한대를 나타냅니다.

JavaScript는 POSITIVE_INFINITY를 표시할 때 Infinity를 사용합니다. 이 값의 산술 동작은 무한대와 매우 유사합니다. 예를 들어, 무한대로 곱한 숫자는 여전히 무한대가 되고, 무한대로 나눈 숫자는 0이 됩니다.

무한대는 Number.POSITIVE_INFINITY와 같습니다.

isFinite() 메서드는 매개변수가 유한수인지 여부를 확인할 수 있습니다.

코드 복사 코드는 다음과 같습니다.

var x = 숫자.NEGATIVE_INFINITY;
var y = 숫자.POSITIVE_INFINITY;
var z = 무한대;
var a = "abc";
변수 b = 123;

console.log(isFinite(x)) //false
console.log(isFinite(y)); //false
console.log(isFinite(z)); //false
console.log(isFinite(a)); //false
console.log(isFinite(b)); //참

toString()

toString() 메서드는 Number 객체를 문자열로 변환하고 결과를 반환합니다.

NumberObject.toString(기수)

매개변수 radix는 선택사항입니다. 숫자가 표현되는 기수를 지정하며 2에서 36 사이의 정수로 만듭니다. 이 매개변수를 생략하면 10진수가 사용됩니다. 오해를 방지하기 위해 이 매개변수를 항상 휴대하는 것이 좋습니다. 예를 들어 radix가 2인 경우 NumberObject는 이진값을 나타내는 문자열로 변환됩니다.

이 메소드를 호출하는 객체가 숫자가 아닌 경우 TypeError 예외가 발생합니다.

코드 복사 코드는 다음과 같습니다.

var a = 100;

console.log(a.toString()) //100
console.log(a.toString(10)); //100
console.log(a.toString(2)); //1100100
console.log(a.toString(8)); //144
console.log(a.toString(16)); //64

toLocaleString()

toLocaleString() 메서드는 Number 객체를 로컬 형식 문자열로 변환할 수 있습니다.

숫자의 문자열 표현, 구현이 결정되고 현지 사양에 따라 형식이 지정되며 소수 또는 천 단위 구분 기호에 사용되는 구두점에 영향을 줄 수 있습니다.

이 메소드를 호출하는 객체가 숫자가 아닌 경우 TypeError 예외가 발생합니다.

코드 복사 코드는 다음과 같습니다.

var a = 123456;

console.log(a.toLocaleString()) //123,456
console.log(a.toLocaleString("zh-Hans-CN-u-nu-hanidec"))); //하나, 둘, 셋, 넷, 다섯, 여섯

자세한 매개변수는 MDN

을 참조하세요.

toFixed()

toFixed() 메소드는 숫자를 지정된 소수점 이하 자릿수로 반올림합니다.

NumberObject.toFixed(num)

매개변수 num이 필요합니다. 0에서 20 사이의 값인 소수 자릿수를 지정합니다. 일부 구현에서는 더 넓은 범위의 값을 지원할 수 있습니다. 이 매개변수를 생략하면 대신 0이 사용됩니다.

지수 계산을 사용하지 않고 소수점 이하 고정 숫자를 갖는 NumberObject의 문자열 표현을 반환합니다. 필요한 경우 숫자는 반올림되고 지정된 길이에 도달하도록 0으로 채워집니다. num이 le 21보다 큰 경우 이 메서드는 단순히 NumberObject.toString()을 호출하여 지수 표기법으로 문자열을 반환합니다.

num이 너무 작거나 너무 크면 RangeError가 발생합니다. 0에서 20 사이의 값은 이 예외를 발생시키지 않습니다. 일부 구현에서는 더 크거나 더 작은 범위의 값을 지원합니다. 이 메서드를 호출하는 개체가 숫자가 아닌 경우 TypeError 예외가 발생합니다.

코드 복사 코드는 다음과 같습니다.

var n = 12345.6789;

console.log(n.toFixed());                     //12346
console.log(n.toFixed(2)); //12345.68
console.log(n.toFixed(6)); //12345.678900
console.log((1.23e 20).toFixed(2)); //123000000000000000000.00
console.log((1.23e-10).toFixed(2)); //0.00

참고: 부동 소수점 숫자 처리로 인해 toFixed() 메서드에 의해 표시되는 결과는 소위 "반올림" 또는 "6에서 5를 두 배로 반올림"하는 것이 아니라 반올림, 6 및 5의 성능입니다. 다섯. 매우 혼란스럽습니다.

코드 복사 코드는 다음과 같습니다.

//크롬
console.log(( 0.035 ).toFixed( 2 )) //0.04
console.log(( 0.045 ).toFixed( 2 )); //0.04

toFixed()의 기본 동작을 대체하려면 자신만의 메서드를 작성하는 것이 좋습니다. SO에 대한 토론:

을 참조하세요.

코드 복사 코드는 다음과 같습니다.

Number.prototype.toFixed = 함수(len){
var temp = Math.pow(10,len);
var s = Math.ceil(this * temp)
s/temp를 반환합니다.
}

console.log(( 0.035 ).toFixed( 2 )) //0.04
console.log(( 0.045 ).toFixed( 2 )); //0.05

toExponential()

toExponential() 메서드는 객체의 값을 지수 표기법으로 변환할 수 있습니다.

NumberObject.toExponential(num)

매개변수 num은 선택사항입니다. 0에서 20 사이의 값인 지수 표기법으로 소수 자릿수를 지정합니다. 일부 구현에서는 더 넓은 범위의 값을 지원할 수 있습니다. 이 인수를 생략하면 가능한 한 많은 숫자가 사용됩니다.

지수 표기법을 사용하여 NumberObject의 문자열 표현을 반환합니다. 즉, 소수점 앞에는 한 자리가 있고 소수점 뒤에는 num 자리가 있습니다. 숫자의 소수 부분은 반올림되고 필요한 경우 0으로 채워져 지정된 길이에 도달합니다.

num이 너무 작거나 너무 크면 RangeError가 발생합니다. 0에서 20 사이의 값은 이 예외를 발생시키지 않습니다. 일부 구현에서는 더 크거나 더 작은 범위의 값을 지원합니다. 이 메서드를 호출하는 개체가 숫자가 아닌 경우 TypeError 예외가 발생합니다.

코드 복사 코드는 다음과 같습니다.

변수 번호 = 10000.1234;

console.log(num.toExponential()) //1.00001234e 4
console.log(num.toExponential(2)); //1.00e 4
console.log(num.toExponential(10)); //1.0000123400e 4

toPrecision()

toPrecision() 메서드는 숫자 값을 십진수 형태의 문자열로 형식화합니다.

NumberObject.toPrecision(num)

매개변수 num은 선택사항입니다. 숫자의 정밀도를 제어하는 ​​데 사용됩니다. 이 매개변수는 1에서 21 사이의 값입니다. 이 매개변수를 생략하면 숫자를 10진수 값으로 변환하는 대신 toString() 메서드가 호출됩니다.

코드 복사 코드는 다음과 같습니다.

변수 번호 = 10000.1234;

console.log(num.toPrecision()) //10000.1234
console.log(num.toPrecision(2)); //1.0e 4
console.log(num.toPrecision(10)); //10000.12340

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.