Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Constructeur Number()

Baseline
Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

Le constructeur Number() crée des objets Number. Lorsqu'il est appelé en tant que fonction, il retourne des valeurs primitives de type Number.

Syntaxe

js
new Number(value)
Number(value)

Note : Number() peut être appelé avec ou sans new, mais avec des effets différents. Voir valeur de retour.

Paramètres

value

La valeur numérique de l'objet à créer.

Valeur de retour

Lorsque Number() est appelé en tant que fonction (sans new), il retourne value converti en primitive de type nombre. En particulier, les valeurs de grand entier (BigInt) sont converties en nombres au lieu de générer une erreur. Si value est absent, il devient 0.

Lorsque Number() est appelé en tant que constructeur (avec new), il utilise le processus de coercition ci-dessus et retourne un objet Number enveloppant, qui n'est pas une primitive.

Attention : Vous devez rarement utiliser Number en tant que constructeur.

Exemples

Créer des objets Number

js
const a = new Number("123"); // a === 123 vaut false
const b = Number("123"); // b === 123 vaut true
a instanceof Number; // vaut true
b instanceof Number; // vaut false
typeof a; // "object"
typeof b; // "number"

Utiliser Number() pour convertir un BigInt en nombre

Number() est le seul cas où un BigInt peut être converti en nombre sans générer d'erreur, car c'est très explicite.

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

Notez que cela peut entraîner une perte de précision si le BigInt est trop grand pour être représenté en toute sécurité.

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

Spécifications

Spécification
ECMAScript® 2027 Language Specification
# sec-number-constructor

Compatibilité des navigateurs

Voir aussi