Heim >Web-Frontend >js-Tutorial >Detaillierte Erläuterung der Eigenschaften und Methoden des Number-Objekts der nativen JavaScript-Objekte_Javascript-Fähigkeiten
Syntax zum Erstellen von Number-Objekten:
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.
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.
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.
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.
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.
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.
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.
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.
Es wird empfohlen, eine eigene Methode zu schreiben, um das Standardverhalten von toFixed() zu ersetzen. Sie können sich darauf beziehen: Diskussion zu SO:
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.
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.
console.log(num.toPrecision()); //10000.1234
console.log(num.toPrecision(2)); //1.0e 4
console.log(num.toPrecision(10)); //10000.12340