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
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
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.
+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
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é.
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
- La prothèse d'émulation pour le comportement moderne de
Number(avec prise en charge des littéraux binaires et octaux) danscore-js(angl.) - La propriété native
NaN - L'objet natif
Math - L'objet natif
BigInt