Number
gère les nombres. Le constructeur Number()
possède une dizaine de propriétés et une dizaine de méthodes.
Lorsqu’on travaille avec les nombres en JavaScript nous préférerons, tout comme pour les chaînes de caractères, utiliser des valeurs primitives plutôt que de créer un nouvel objet avec le constructeur Number
pour des raisons de performance.
Les propriétés de l’objet Number
La plupart des propriétés de l’objet Number
sont des propriétés dites statiques. Cela signifie qu’on ne va pouvoir les utiliser qu’avec l’objet Number
en soi et non pas avec une instance de Number()
(ni donc avec une valeur primitive).
Les propriétés à connaitre sont les suivantes :
- Les propriétés
MIN_VALUE
etMAX_VALUE
représentent respectivement les plus petite valeur numérique positive et plus grand valeur numérique qu’il est possible de représenter en JavaScript ; - Les propriétés
MIN_SAFE_INTEGER
etMAX_SAFE_INTEGER
représentent respectivement le plus petit et le plus grand entiers représentables correctement ou de façon « sûre » en JavaScript. L’aspect « sûr » ici faire référence à la capacité du JavaScript à représenter exactement ces entiers et à les comparer entre eux. Au-delà de ces limites, les entiers différents seront jugés égaux ; - Les propriétés
NEGATIVE_INFINITY
etPOSITIVE_INFINITY
servent respectivement à représenter l’infini côté négatif et côté positif ; - La propriété
NaN
représente une valeur qui n’est pas un nombre (« NaN » est l’abréviation de « Not a Number ») et est équivalente à la valeurNaN
.
See the Pen
Cours JavaScript 6.3.1 by Pierre (@pierregiraud)
on CodePen.
Les méthodes de l’objet Number
Le constructeur Number()
dispose également d’une dizaine de méthodes. Tout comme pour les propriétés, la plupart des méthodes de Number
vont devoir être utilisées avec l’objet Number
en soi. Nous allons passer en revue les plus intéressantes à mon sens.
La méthode isFinite()
La méthode isFinite()
permet de déterminer si une valeur fournie est un nombre fini. On va lui passer en argument la valeur à tester.
Si l’argument passé est bien une valeur finie, isFinite()
renverra le booléen true
. Dans le cas contraire, cette méthode renverra la booléen false
.
See the Pen
Cours JavaScript 6.3.2 by Pierre (@pierregiraud)
on CodePen.
La méthode isInteger()
La méthode isInteger()
permet de déterminer si une valeur est un entier valide.
Si la valeur testée est bien un entier, la méthode isInteger ()
renverra le booléen true
. Dans le cas contraire, cette méthode renverra la booléen false
.
Notez que si la valeur testée est NaN
ou l’infini, la méthode renverra également false
.
See the Pen
Cours JavaScript 6.3.3 by Pierre (@pierregiraud)
on CodePen.
La méthode isNaN()
La méthode isNaN()
permet de déterminer si la valeur passée en argument est la valeur NaN
(valeur qui appartient au type Number
).
On va lui passer en argument la valeur qui doit être comparée à NaN
. Si la valeur passée est bien égale à NaN
, notre méthode renverra le booléen true
. Dans le cas contraire, le booléen false
sera renvoyé.
See the Pen
Cours JavaScript 6.3.4 by Pierre (@pierregiraud)
on CodePen.
La méthode isSafeInteger()
La méthode isSafeInteger()
permet de déterminer si une valeur est un entier sûr (un entier que le JavaScript peut représenter correctement).
Cette méthode prend la valeur à tester en argument et retourne le booléen true
si la valeur est bien un entier sûr ou false
sinon.
See the Pen
Cours JavaScript 6.3.5 by Pierre (@pierregiraud)
on CodePen.
La méthode parseFloat()
La méthode parseFloat()
permet de convertir une chaîne de caractères en un nombre décimal. Pour cela, on va lui passer la chaine à transformer en argument et la méthode renverra un nombre décimal en retour.
L’analyse de la chaîne s’arrête dès qu’un caractère qui n’est pas +,-, un chiffre, un point ou un exposant est rencontré. Ce caractère et tous les suivants vont alors être ignorés. Si le premier caractère de la chaîne ne peut pas être converti en un nombre, parseFloat()
renverra la valeur NaN
See the Pen
Cours JavaScript 6.3.6 by Pierre (@pierregiraud)
on CodePen.
La méthode parseInt()
La méthode parseInt()
permet de convertir une chaine de caractères en un entier selon une base et va renvoyer ce nombre en base 10. On va lui passer deux arguments : la chaine de caractères à convertir et la base utilisée pour la conversion.
Dans la vie de tous les jours, nous utilisons la base 10 : nous possédons dix unités de 0 à 9 et dès qu’on dépasse 9 une dizaine est formée. En informatique, il est courant de travailler en binaire, c’est-à-dire en base 2.
En binaire, nous n’avons que deux unités : le 0 et le 1. Pour représenter le « 2 » (base 10) en binaire, on écrit « 10 ». Le 3 est représenté en binaire par 11, le 4 par 100, le 5 par 101, le 6 par 110, le 7 par 111, le 8 par 1000 et etc.
En programmation web, on utilise également aussi parfois des bases octales (base 8) qui utilisent 8 unités ainsi que des bases hexadécimales (base 16), notamment pour définir les couleurs en CSS.
Une base hexadécimale utilise 16 unités. Pour représenter le « 10 » de notre base 10 en hexadécimale, on utilise le chiffre 0 suivi de la lettre A. Le 11 est représenté par 0B, le 12 par 0C, le 13 par 0D, le 14 par 0E et le 15 par 0F.
See the Pen
Cours JavaScript 6.3.7 by Pierre (@pierregiraud)
on CodePen.
Ici, dans notre premier exemple par exemple, parseInt()
convertit le chaine « 0F » en utilisant une base 16 et renvoie le résultat en base 10 (l’équivalent de « 0F » en base 10 est 15).
La méthode toFixed()
La méthode toFixed()
permet de formater un nombre en indiquant le nombre de décimales (nombre de chiffres après la virgule) qu’on souhaite conserver.
On va indiquer en argument de cette méthode le nombre de décimales souhaitées et notre méthode va renvoyer une chaine de caractères qui représente le nombre avec le nombre de décimales souhaitées.
Dans le cas où on demande à toFixed()
de renvoyer un nombre avec moins de décimales que le nombre de base, l’arrondi se fera à la décimale supérieure si la décimale suivant celle où le nombre doit être arrondi est 5 ou supérieure à 5.
See the Pen
Cours JavaScript 6.3.8 by Pierre (@pierregiraud)
on CodePen.
La méthode toPrecision()
La méthode toPrecision()
est relativement similaire à la méthode toFixed()
. Cette méthode permet de représenter un nombre avec un nombre de chiffre données (avec une certaine « précision »).
On va lui passer en argument le nombre de chiffres qu’on souhaite conserver et celle-ci va renvoyer une chaine de caractères représentant notre nombre avec le bon nombre de chiffres.
Les règles d’arrondi vont être les mêmes que pour la méthode toFixed()
.
See the Pen
Cours JavaScript 6.3.9 by Pierre (@pierregiraud)
on CodePen.
Ici, dans notre premier exemple, il est impossible de représenter notre nombre 1234,450 de manière « traditionnelle » en ne conservant que deux chiffres. Une notation sous forme d’exponentielle (puissances de 10) est donc utilisée par toPrecision()
.
La méthode toString()
La méthode toString()
permet de transformer un nombre en une chaine de caractères. On va pouvoir lui passer une base en argument pour formater notre nombre. Elle renverra une chaine de caractères représentant notre nombre.
See the Pen
Cours JavaScript 6.3.10 by Pierre (@pierregiraud)
on CodePen.
Dans cet exemple, on demande à la méthode toString()
de traduire le nombre 255 en base 16 puis en base 2. Par exemple, 255 en base 16 équivaut à FF. Notre méthode va renvoyer les résultats sous forme de chaine de caractères (même lorsqu’apparemment seulement des chiffres sont renvoyés).
Bonjour,
La première ligne n’est-elle pas plutôt : « l’objet number gère les nombres »?
Merci encore pour votre travail pour la préparation de tous ces cours!
Bonne journée
Claire
Bonjour,
Oui tout à fait c’est corrigé. Merci de votre attention
Dans la méthode parseInt(), fin du deuxième paragraphe, il manque juste le « 2 ».
Bonne journée
Claire
Bien vu, c’est corrigé ! Encore merci