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

js
new Number(value)
Number(value)

Hinweis:>Number() kann mit oder ohne new aufgerufen werden, jedoch 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 es value zu einem Zahlen-Primitiv coerced zurück. Insbesondere werden BigInts in Zahlen umgewandelt, anstatt einen Fehler auszulösen. Ist value nicht vorhanden, wird es 0.

Wenn Number() als Konstruktor (mit new) aufgerufen wird, verwendet es den oben beschriebenen Coercion-Prozess und gibt ein eingeschlossenes Number Objekt zurück, das kein Primitiv ist.

Warnung: Sie sollten Number selten als Konstruktor verwenden.

Beispiele

Number-Objekte erstellen

js
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"

Verwendung von Number() zur Umwandlung eines BigInt in eine Zahl

Number() ist der einzige Fall, in dem ein BigInt in eine Zahl umgewandelt werden kann, ohne einen Fehler auszulösen, da es sehr explizit ist.

js
+1n; // TypeError: Cannot convert a BigInt value to a number
0 + 1n; // TypeError: Cannot mix BigInt and other types, use explicit conversions
js
Number(1n); // 1

Beachten Sie, dass dies zu einem Präzisionsverlust führen kann, wenn das BigInt zu groß ist, um sicher dargestellt zu werden.

js
BigInt(Number(2n ** 54n + 1n)) === 2n ** 54n + 1n; // false

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-number-constructor

Browser-Kompatibilität

Siehe auch