Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Eigenschaften und Methoden des Number-Objekts der nativen JavaScript-Objekte_Javascript-Fähigkeiten

Detaillierte Erläuterung der Eigenschaften und Methoden des Number-Objekts der nativen JavaScript-Objekte_Javascript-Fähigkeiten

WBOY
WBOYOriginal
2016-05-16 16:09:351727Durchsuche

Syntax zum Erstellen von Number-Objekten:

Code kopieren Der Code lautet wie folgt:

var myNum = neue Zahl(Wert);
var myNum = Number(value);

Wenn Number() als Konstruktor mit dem Operator new verwendet wird, gibt es ein neu erstelltes Number-Objekt zurück. Wenn Sie den neuen Operator nicht verwenden und Number() als Funktion aufrufen, wandelt er sein Argument in eine Grundzahl um und gibt diesen Wert zurück (oder NaN, wenn die Konvertierung fehlschlägt).

MAX_VALUE

Das MAX_VALUE-Attribut ist die größte in JavaScript darstellbare Zahl. Sein ungefährer Wert ist 1,7976931348623157 x 10308. Die größte negative Zahl ist -MAX_VALUE.

Die Zahl größer als MAX_VALUE ist Unendlich. MAX_VALUE ist eine statische Eigenschaft, daher sollte die aufrufende Methode Number.MAX_VALUE sein.

Code kopieren Der Code lautet wie folgt:

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

MIN_VALUE

Das MIN_VALUE-Attribut ist die kleinste in JavaScript darstellbare Zahl (nahe 0, aber nicht negativ). Sein ungefährer Wert beträgt 5 x 10-324 .

Alle Zahlen kleiner als MIN_VALUE werden in 0 umgewandelt.

MIN_VALUE ist eine statische Eigenschaft, daher sollte die aufrufende Methode Number.MIN_VALUE sein.

NaN

Das NaN-Attribut ist ein spezieller Wert, der einen nicht numerischen Wert darstellt. Dieses Attribut wird verwendet, um anzuzeigen, dass ein Wert keine Zahl ist. Ein Number-Objekt kann auf diesen Wert festgelegt werden, um anzuzeigen, dass es sich nicht um einen numerischen Wert handelt.

Sie können die globale Funktion isNaN() verwenden, um zu bestimmen, ob ein Wert ein NaN-Wert ist.

Number.NaN ist ein spezieller Wert, der angibt, dass das Ergebnis bestimmter arithmetischer Operationen (z. B. das Finden der Quadratwurzel einer negativen Zahl) keine Zahl ist. Die Methoden parseInt() und parseFloat() geben diesen Wert zurück, wenn die angegebene Zeichenfolge nicht geparst werden kann. Für einige Funktionen, die normalerweise gültige Zahlen zurückgeben, können Sie diese Methode auch verwenden und Number.NaN verwenden, um die Fehlerbedingungen anzugeben.

JavaScript gibt Number.NaN als NaN aus. Beachten Sie, dass NaN im Vergleich zu anderen Zahlen, einschließlich sich selbst, immer ungleich ist. Daher können Sie nicht mit Number.NaN vergleichen, um zu testen, ob ein Wert eine Zahl ist, sondern können zum Vergleich nur isNaN() aufrufen.

Hinweis: Die globale Variable NaN ist dasselbe wie Number. NaN ist ein nicht konfigurierbares und nicht veränderbares Attribut.

Code kopieren Der Code lautet wie folgt:

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

NEGATIVE_INFINITY

Das Attribut NEGATIVE_INFINITY stellt einen Wert dar, der kleiner als -Number.MAX_VALUE ist. Dieser Wert stellt eine negative Unendlichkeit dar.

JavaScript verwendet -Infinity, wenn NEGATIVE_INFINITY angezeigt wird. Das arithmetische Verhalten dieses Werts ist der Unendlichkeit sehr ähnlich. Beispielsweise ergibt jede Zahl, die mit Unendlich multipliziert wird, immer noch Unendlich, und jede Zahl, die durch Unendlich geteilt wird, ergibt 0.

-Infinity ist gleich Number.NEGATIVE_INFINITY.

Code kopieren Der Code lautet wie folgt:

var x = (-Number.MAX_VALUE) * 2;
var y = Number.NEGATIVE_INFINITY;
console.log(x); //-Infinity
console.log(y); //-Infinity
console.log(x===y); //true

POSITIVE_INFINITY

Das Attribut POSITIVE_INFINITY stellt einen Wert dar, der größer als Number.MAX_VALUE ist. Dieser Wert stellt eine positive Unendlichkeit dar.

JavaScript verwendet Infinity bei der Anzeige von POSITIVE_INFINITY. Das arithmetische Verhalten dieses Werts ist der Unendlichkeit sehr ähnlich. Beispielsweise ergibt jede Zahl, die mit Unendlich multipliziert wird, immer noch Unendlich, und jede Zahl, die durch Unendlich geteilt wird, ergibt 0.

Unendlich ist gleich Number.POSITIVE_INFINITY.

Die Methode isFinite() kann bestimmen, ob der Parameter eine endliche Zahl ist.

Code kopieren Der Code lautet wie folgt:

var x = Number.NEGATIVE_INFINITY;
var y = Number.POSITIVE_INFINITY;
var z = Unendlich;
var a = "abc";
var 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)); //true

toString()

Die toString()-Methode wandelt ein Number-Objekt in einen String um und gibt das Ergebnis zurück.

NumberObject.toString(radix)

Der Parameter radix ist optional. Gibt die Basis an, in der die Zahl dargestellt wird, und macht sie zu einer Ganzzahl zwischen 2 und 36. Wenn dieser Parameter weggelassen wird, wird die Basis 10 verwendet. Es wird empfohlen, diesen Parameter immer mitzuführen, um Missverständnisse zu vermeiden. Wenn der Basiswert beispielsweise 2 ist, wird das NumberObject in eine Zeichenfolge umgewandelt, die den Binärwert darstellt.

Eine TypeError-Ausnahme wird ausgelöst, wenn das Objekt, das diese Methode aufruft, keine Zahl ist.

Code kopieren Der Code lautet wie folgt:

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()

Die toLocaleString()-Methode kann ein Number-Objekt in eine lokale Formatzeichenfolge konvertieren.

String-Darstellung einer Zahl, Implementierung bestimmt, formatiert gemäß lokalen Spezifikationen, die sich auf die für Dezimal- oder Tausendsteltrennzeichen verwendete Interpunktion auswirken kann.

Eine TypeError-Ausnahme wird ausgelöst, wenn das Objekt, das diese Methode aufruft, keine Zahl ist.

Code kopieren Der Code lautet wie folgt:

var a = 123456;

console.log(a.toLocaleString()); //123,456
console.log(a.toLocaleString("zh-Hans-CN-u-nu-hanidec")); //Eins, zwei, drei, vier, fünf, sechs

Weitere Parameter finden Sie unter: MDN

toFixed()

Die toFixed()-Methode rundet eine Zahl auf eine Zahl mit einer angegebenen Anzahl von Dezimalstellen.

NumberObject.toFixed(num)

Die Parameternummer ist erforderlich. Gibt die Anzahl der Dezimalstellen an, also einen Wert zwischen 0 und 20 (einschließlich). Einige Implementierungen können einen größeren Wertebereich unterstützen. Wenn dieser Parameter weggelassen wird, wird stattdessen 0 verwendet.

Gibt die Zeichenfolgendarstellung von NumberObject zurück, die keine exponentielle Zählung verwendet und eine feste Anzahl von Nachkommastellen aufweist. Die Zahl wird bei Bedarf gerundet und mit Nullen aufgefüllt, damit sie die angegebene Länge erreicht. Wenn num größer als 21 ist, ruft diese Methode einfach NumberObject.toString() auf und gibt einen String in Exponentialschreibweise zurück.

RangeError wird ausgelöst, wenn num zu klein oder zu groß ist. Werte zwischen 0 und 20 lösen diese Ausnahme nicht aus. Einige Implementierungen unterstützen einen größeren oder kleineren Wertebereich. Eine TypeError-Ausnahme wird ausgelöst, wenn das Objekt, das diese Methode aufruft, keine Zahl ist.

Code kopieren Der Code lautet wie folgt:

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)); //12300000000000000000.00
console.log((1.23e-10).toFixed(2)); //0.00

Hinweis: Aufgrund der Verarbeitung von Gleitkommazahlen ist das von der toFixed()-Methode angezeigte Ergebnis nicht die sogenannte „Rundung“ oder „Rundung von sechs auf fünf auf das Doppelte“, sondern die Leistung der Rundung, sechs und fünf. Sehr verwirrend.

Code kopieren Der Code lautet wie folgt:

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

Es wird empfohlen, eine eigene Methode zu schreiben, um das Standardverhalten von toFixed() zu ersetzen. Sie können sich darauf beziehen: Diskussion zu SO:

Code kopieren Der Code lautet wie folgt:

Number.prototype.toFixed = function(len){
var temp = Math.pow(10,len);
var s = Math.ceil(this * temp)
Geben Sie s/temp;
zurück }

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

toExponential()

Die toExponential()-Methode kann den Wert des Objekts in eine Exponentialschreibweise umwandeln.

NumberObject.toExponential(num)

Der Parameter num ist optional. Gibt die Anzahl der Dezimalstellen in Exponentialschreibweise an, was einem Wert zwischen 0 und 20 entspricht. Einige Implementierungen können einen größeren Wertebereich unterstützen. Wenn dieses Argument weggelassen wird, werden so viele Zahlen wie möglich verwendet.

Gibt die Zeichenfolgendarstellung von NumberObject in Exponentialschreibweise zurück, d. h. es gibt eine Ziffer vor dem Dezimalpunkt und mehrere Ziffern nach dem Dezimalpunkt. Der Dezimalteil der Zahl wird gerundet und bei Bedarf mit Nullen aufgefüllt, sodass er die angegebene Länge erreicht.

RangeError wird ausgelöst, wenn num zu klein oder zu groß ist. Werte zwischen 0 und 20 lösen diese Ausnahme nicht aus. Einige Implementierungen unterstützen einen größeren oder kleineren Wertebereich. Eine TypeError-Ausnahme wird ausgelöst, wenn das Objekt, das diese Methode aufruft, keine Zahl ist.

Code kopieren Der Code lautet wie folgt:

var num = 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()

Die toPrecision()-Methode formatiert einen numerischen Wert in eine Zeichenfolge in Form einer Dezimalzahl.

NumberObject.toPrecision(num)

Der Parameter num ist optional. Wird verwendet, um die Genauigkeit von Zahlen zu steuern. Dieser Parameter ist ein Wert zwischen 1 und 21 (einschließlich). Wenn dieser Parameter weggelassen wird, wird die Methode toString() aufgerufen, anstatt die Zahl in einen Dezimalwert umzuwandeln.

Code kopieren Der Code lautet wie folgt:

var num = 10000.1234;

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn