| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Guide/Numbers_and_strings | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
Ce chapitre illustre le fonctionnement des nombres et des dates en JavaScript grce aux concepts, objets et fonctions utilisables avec ce langage. Cela inclut notamment l'criture de nombre selon diffrentes bases (dcimale, binaire, hexadcimale) et l'utilisation de l'objet global Math.
Les nombres en JavaScript sont implments comme des nombres sur 64 bits prcision double selon le format IEEE-754 qui est un standard pour la reprsentation des nombres flottants et qui permet d'avoir jusqu' 16 chiffres significatifs. Le type numrique possde galement trois valeurs spciales symboliques : +Infinity, -Infinity et NaN (pour dsigner une valeur qui n'est pas un nombre).
Le format IEEE-754 permet de reprsenter des valeurs entre 2^1022 et 2^+1023, ce qui correspond des valeurs entre 10^308 et 10^+308 avec une prcision sur 53 bits. Les nombres entiers compris sur l'intervalle 2^53 1 peuvent tre reprsents exactement.
Le type BigInt est une addition rcente JavaScript qui permet de reprsenter de grands entiers. Toutefois, il n'est pas possible de mlanger les BigInt et les nombres (Number) dans les mmes oprations et on ne peut pas utiliser l'objet Math avec les valeurs BigInt.
Voir galement les types de donnes et structures JavaScript pour l'articulation des types primitifs en JavaScript.
Il est possible d'utiliser quatre types de littraux numriques : dcimal, binaire, octal et hexadcimal.
1234567980;
42;
// Attention l'utilisation des zros
// en dbut de nombre
0888; // 888 analys en base dcimale
0777; // en mode non-strict, analys en base octale,
// ce qui correspond
// 511 en base dcimale
On voit ici que les littraux numriques qui commencent par un zro (0) et contiennent un chiffre strictement infrieur 8 aprs ce 0 sont analyss comme tant exprims en base octale.
Pour utiliser des nombres binaires, on utilise un littral qui commence par un 0 suivi d'un b minuscule ou majuscule (0b ou 0B). Si les chiffres qui suivent ce prfixe ne sont pas des 0 ou des 1, une exception SyntaxError sera leve.
var FLT_BITSIGNE = 0b10000000000000000000000000000000; // 2147483648
var FLT_EXPOSANT = 0b01111111100000000000000000000000; // 2139095040
var FLT_MANTISSE = 0b00000000011111111111111111111111; // 8388607
Pour utiliser des nombres en base octale, on utilisera un prfixe avec un 0. Si les nombres qui suivent ce 0 ne sont pas compris entre 0 et 7 (au sens strict), le nombre sera interprt comme un nombre dcimal.
var n = 0755; // 493 en base 10
var m = 0644; // 420 en base 10
En mode strict, ECMAScript 5 interdit cette syntaxe octale. Cette syntaxe ne fait pas partie d'ECMAScript 5 mais est supporte par la majorit des navigateurs. Avec ECMAScript 2015 (ES6), il est possible de reprsenter un nombre en notation octale grce au prfixe "0o" :
var a = 0o10; // Notation octale pour ES2015
Pour utiliser des nombres exprims en base hexadcimale, on utilisera un prfixe avec un zro suivi d'un x majuscule ou minuscule (0x ou 0X). Si les chiffres qui suivent ce prfixe ne sont pas 0123456789ABCDEF, cela provoquera une exception SyntaxError.
0xfffffffffffffffff; // 295147905179352830000
0x123456789abcdef; // 81985529216486900
0xa; // 10
1e3; // 100
2e6; // 2000000
0.1e2; // 10
NumberL'objet Number possde certaines proprits reprsentant les constantes numriques telles que : la valeur maximale reprsentable en JavaScript, une valeur spciale pour dire que la valeur numrique n'est pas un nombre et l'infini. Ces valeurs ne peuvent pas tre modifies, on pourra les utiliser de la faon suivante :
var plusGrandNombre = Number.MAX_VALUE;
var plusPetitNombre = Number.MIN_VALUE;
var infini = Number.POSITIVE_INFINITY;
var infiniNgatif = Number.NEGATIVE_INFINITY;
var pasUnNombre = Number.NaN;
On utilisera toujours ces valeurs directement avec l'objet natif Number (et non pas avec les proprits d'une instance d'un objet Number qu'on aurait cr).
Le tableau qui suit liste certaines des proprits de Number.
| Proprit | Description |
|---|---|
Number.MAX_VALUE |
Le plus grand nombre qu'on peut reprsenter en JavaScript
(1.7976931348623157e+308).
|
Number.MIN_VALUE |
Le plus petit nombre qu'on peut reprsenter en JavaScript
(5e-324).
|
Number.NaN |
Une valeur spciale signifiant que la valeur n'est pas un nombre. |
Number.NEGATIVE_INFINITY |
L'infini ngatif, renvoy lorsqu'on dpasse la valeur minimale. |
Number.POSITIVE_INFINITY |
L'infini positif, renvoy lorsqu'on dpasse la valeur maximale. |
Number.EPSILON |
La diffrence entre 1 et la premire valeur suprieure 1 qui puisse
tre reprsente comme Number.
(2.220446049250313e-16)
|
Number.MIN_SAFE_INTEGER |
Le plus petit entier qu'on puisse reprsenter en JavaScript. (2^53 + 1
ou 9007199254740991)
|
Number.MAX_SAFE_INTEGER |
L'entier le plus grand qu'on puisse reprsenter en JavaScript (+2^53
1 ou |
| Mthode | Description |
|---|---|
Number.parseFloat() |
Analyse un argument qui est une chane de caractres et renvoie un nombre dcimal. Cette mthode est quivalente la fonction parseFloat(). |
Number.parseInt() |
Analyse un argument qui est une chane de caractres et renvoie un entier exprim dans une base donne. Cette mthode est quivalente la fonction parseInt(). |
Number.isFinite() |
Dtermine si la valeur passe en argument est un nombre fini. |
Number.isInteger() |
Dtermine si la valeur passe en argument est un nombre entier. |
Number.isNaN() |
Dtermine si la valeur passe en argument est NaN. Cette version est plus robuste que la fonction globale isNaN(). |
Number.isSafeInteger() |
Dtermine si la valeur fournie est un nombre qu'il est possible de reprsenter comme un entier sans perdre d'information. |
Le prototype de Number fournit certaines mthodes pour exprimer les valeurs reprsentes par les objets Number dans diffrents formats. Le tableau suivant liste certaines de ces mthodes de Number.prototype.
| Mthode | Description |
|---|---|
toExponential() |
Renvoie une chane de caractres reprsentant le nombre en notation exponentielle. |
toFixed() |
Renvoie une chane de caractres reprsentant le nombre en notation point fixe. |
toPrecision() |
Renvoie une chane de caractres reprsentant le nombre en notation point fixe avec une prcision donne. |
MathL'objet natif Math possde des proprits et des mthodes statiques pour reprsenter des constantes et des fonctions mathmatiques. Ainsi, la proprit PI de l'objet Math reprsente la valeur de la constante \pi (3.141...), on peut l'utiliser dans les applications avec :
Math.PI;
De la mme faon, les fonctions mathmatiques usuelles sont des mthodes de Math. On retrouve par exemple les fonctions trigonomtriques, logarithmiques et exponentielles ainsi que d'autres fonctions. Si on souhaite utiliser la fonction sinus, on pourra crire :
Math.sin(1.56);
Note :
Les mthodes trigonomtriques de Math prennent des arguments exprims en radians.
Le tableau suivant liste les mthodes de l'objet Math.
| Mthode | Description |
|---|---|
abs() |
Valeur absolue |
sin(), cos(), tan() |
Fonctions trigonomtriques standards (les arguments sont exprims en radians) |
asin(), acos(), atan(), atan2() |
Fonctions trigonomtriques inverses (les valeurs renvoyes sont exprimes en radians) |
sinh(), cosh(), tanh() |
Fonctions trigonomtriques hyperboliques (les arguments sont exprims en radians) |
asinh(), acosh(), atanh() |
Fonctions trigonomtriques hyperboliques inverses (les valeurs renvoyes sont exprimes en radians). |
pow(), exp(), expm1(), log10(), log1p(), log2() |
Fonctions exponentielles et logarithmiques |
floor(), ceil() |
Renvoie le plus petit/grand entier infrieur/suprieur ou gal l'argument donn |
min(), max() |
Renvoie le plus petit (resp. grand) nombre d'une liste de nombres spars par des virgules |
random() |
Renvoie un nombre alatoire compris entre 0 et 1 |
round(), fround(), trunc(), |
Fonctions d'arrondis et de troncature |
sqrt(), cbrt(), hypot() |
Racine carre, cubique et racine carre de la somme des carrs des arguments |
sign() |
Renvoie le signe d'un nombre et indique si la valeur est ngative, positive ou nulle |
clz32(), imul() |
Le nombre de zros qui commencent un nombre sur 32 bits en reprsentation binaire. La rsultat de la multiplication de deux arguments sur 32 bits effectue comme en C. |
la diffrence des autres objets, on ne cre pas d'objet de type Math. Ses proprits sont statiques, on les appelle donc toujours depuis l'objet Math.
DateJavaScript ne possde pas de type primitif pour reprsenter des dates. Cependant l'objet Date et ses mthodes permettent de manipuler des dates et des heures au sein d'une application. L'objet Date possde de nombreuses mthodes pour dfinir, modifier, obtenir des dates. Il ne possde pas de proprits.
JavaScript gre les dates de faon similaire Java. Les deux langages possdent de nombreuses mthodes en commun et les deux langages stockent les dates selon les nombres de millisecondes coules depuis le premier janvier 1970 00h00:00.
L'objet Date permet de reprsenter des dates allant de -100 000 000 jours jusqu' +100 000 000 jours par rapport au premier janvier 1970 UTC.
Pour crer un objet Date, on utilisera la syntaxe suivante :
var monObjetDate = new Date([paramtres]);
avec monObjetDate tant le nom de l'objet crer, cela peut tre un nouvel objet ou une proprit d'un objet existant.
Lorsqu'on appelle Date sans le mot-cl new, cela renvoie la date fournie sous la forme d'une chane de caractres.
Les paramtres qui peuvent tre utiliss sont :
var nol95 = new Date("December 25, 1995 13:30:00"). Si les valeurs pour les heures, minutes ou secondes sont absentes, elles vaudront 0 par dfaut.var nol95 = new Date(1995, 11, 25).var nol95 = new Date(1995, 11, 25, 9, 30, 0);.DateLes mthodes de l'objet Date se rpartissent en diffrentes catgories :
Date (mutateurs).Date (accesseurs).Date sous diffrents formats (souvent en chanes de caractres).Avec les accesseurs et les mutateurs, il est possible d'obtenir ou de modifier sparment les secondes, les minutes, les heures, le jour du mois ou de la semaine, le mois et l'anne. Il existe une mthode getDay qui renvoie le jour de la semaine mais il n'existe pas de mthode rciproque setDay car le jour de la semaine est automatiquement dtermin. Ces mthodes utilisent des entiers pour reprsenter les valeurs utilises :
Ainsi, si on dfinit la date suivante :
var nol95 = new Date("December 25, 1995");
nol95.getMonth() renverra 11, et nol95.getFullYear() renverra 1995.
Les mthodes getTime et setTime peuvent tre utiles pour comparer des dates entre elles. La mthode getTime renvoie le nombre de millisecondes coules depuis le premier janvier 1970 00:00:00 pour l'objet Date.
Par exemple, les instructions suivantes affichent le nombre de jours qui restent pour l'anne courante :
var aujourdhui = new Date();
// On dfinit le jour et le mois
var finAnne = new Date(1995, 11, 31, 23, 59, 59, 999);
// On dfinit l'anne avec l'anne courante
finAnne.setFullYear(aujourdhui.getFullYear());
// On calcule le nombre de millisecondes par jour
var msParJour = 24 * 60 * 60 * 1000;
// On renvoie le nombre de jours restants dans l'anne
var joursRestants = (finAnne.getTime() - aujourdhui.getTime()) / msParJour;
joursRestants = Math.round(joursRestants);
Cet exemple cre un objet Date nomm aujourdhui qui contient la date du jour. On cre ensuite un objet Date nomm finAnne pour lequel on dfinit ensuite l'anne avec l'anne courante. Aprs, on calcule le nombre de millisecondes qui s'coulent dans une journe. Enfin, on calcule le nombre de jours entre aujourdhui et finAnne en utilisant getTime puis on arrondit le tout pour avoir un nombre de jours.
La mthode parse est utile lorsqu'on souhaite affecter des valeurs temporelles partir de chanes de caractres. Par exemple, dans le code qui suit, on utilise les mthodes parse et setTime pour affecter la valeur d'une date un objet IPOdate :
var IPOdate = new Date();
IPOdate.setTime(Date.parse("Aug 9, 1995"));
DateDans l'exemple qui suit, la fonction JSClock() renvoie le temps au format d'une horloge numrique reprsentant les heures sur 12 heures :
function JSClock() {
var temps = new Date();
var heures = temps.getHours();
var minutes = temps.getMinutes();
var secondes = temps.getSeconds();
var calc = "" + (heures > 12) ? heures - 12 : heures);
if (heures == 0)
calc = "12";
calc += ((minutes < 10) ? ":0" : ":") + minutes;
calc += ((secondes < 10) ? ":0" : ":") + secondes;
calc += (heures >= 12) ? " P.M." : " A.M.";
return calc;
}
Pour commencer, la fonction JSClock cre un objet Date appel temps qui reprsente la date et l'heure l'instant o la fonction est excute. Ensuite, les mthodes getHours, getMinutes, et getSeconds sont appeles afin d'affecter les valeurs correspondantes heures, minutes, et secondes.
Les quatre instructions suivantes permettent de construire une chane de caractres partir de la valeur temporelle. La premire instruction cre une variable calc et lui affecte une valeur avec une expression conditionnelle : si heures est suprieure 12, on affichera (heures - 12), sinon on affichera l'heure sauf si c'est 0 auquel cas on affichera 12.
L'instruction qui suit concatne la valeur de minutes calc. Si la valeur de minutes est infrieure 10, l'expression conditionnelle ajoutera une chane avec un zro pour que la valeur soit affiche avec deux chiffres. De la mme faon, l'instruction qui suit concatne la valeur de calc avec les secondes.
Enfin, une expression conditionnelle est utilise pour ajouter "P.M." calc si heures vaut 12 ou plus, sinon ce sera la chane "A.M." qui sera ajoute la fin de calc.
Cette page a t modifie le 22 mai 2026 par les contributeurices du MDN.
Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |