Number() Konstruktor
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Der Number()
Konstruktor erstellt Number
Objekte. Wird er als Funktion aufgerufen, gibt er primitive Werte des Typs Number zurück.
Syntax
new Number(value)
Number(value)
Note:
Number()
kann mit oder ohnenew
aufgerufen werden, mit unterschiedlichen Effekten. Siehe Rückgabewert.
Parameter
value
-
Der numerische Wert des zu erstellenden Objekts.
Rückgabewert
Wenn Number()
als Funktion (ohne new
) aufgerufen wird, gibt er value
in einen Zahlenwert umgewandelt zurück. Insbesondere werden BigInts in Zahlen umgewandelt, anstatt einen Fehler auszulösen. Wenn value
fehlt, wird es zu 0
.
Wird Number()
als Konstruktor (mit new
) aufgerufen, verwendet er den obigen Umwandlungsprozess und gibt ein umhüllendes Number
Objekt zurück, welches kein primitiver Wert ist.
Warnung:
Sie sollten Number
selten als Konstruktor verwenden.
Beispiele
Number-Objekte erstellen
const a = new Number("123"); // a === 123 is false
const b = Number("123"); // b === 123 is true
a instanceof Number; // is true
b instanceof Number; // is false
typeof a; // "object"
typeof b; // "number"
Nutzung von Number() zur Umwandlung eines BigInt in eine Zahl
Number()
ist der einzige Fall, in dem ein BigInt ohne Auslösen eines Fehlers in eine Zahl umgewandelt werden kann, da es sehr explizit ist.
+1n; // TypeError: Cannot convert a BigInt value to a number
0 + 1n; // TypeError: Cannot mix BigInt and other types, use explicit conversions
Number(1n); // 1
Beachten Sie, dass dies zu einem Verlust von Präzision führen kann, wenn der BigInt zu groß ist, um sicher dargestellt zu werden.
BigInt(Number(2n ** 54n + 1n)) === 2n ** 54n + 1n; // false
Spezifikationen
Specification |
---|
ECMAScript Language Specification # sec-number-constructor |
Browser-Kompatibilität
BCD tables only load in the browser