1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
|
---
title: Math
slug: Web/JavaScript/Reference/Global_Objects/Math
tags:
- JavaScript
- Math
- Reference
translation_of: Web/JavaScript/Reference/Global_Objects/Math
original_slug: Web/JavaScript/Reference/Objets_globaux/Math
---
<div>{{JSRef}}</div>
<p>L'objet <strong><code>Math</code></strong> est un objet natif dont les méthodes et propriétés permettent l'utilisation de constantes et fonctions mathématiques. Cet objet n'est pas une fonction.</p>
<div class="blockIndicator warning">
<p><strong>Attention !</strong> <code>Math</code> fonctionne avec le type {{jsxref("Number")}}. Il ne fonctionne pas avec les grands entiers/{{jsxref("BigInt")}}.</p>
</div>
<h2 id="Description">Description</h2>
<p>Contrairement aux autres objets globaux, <code>Math</code> n'est pas un constructeur. Toutes les propriétés et les méthodes de <code>Math</code> sont statiques (pour éventuellement étendre cette API, ce qui est fortement déconseillé, on n'utilisera donc pas <code>Math.prototype</code>).</p>
<p>Pour accéder à la constante PI, on utilise <code>Math.PI</code>.<br>
Pour accéder à la fonction <em>sinus</em>, on utilise <code>Math.sin(x)</code> où <code>x</code> est l'argument de cette méthode.</p>
<p>Les constantes sont définies avec la précision des nombres réels en JavaScript.</p>
<h2 id="Propriétés">Propriétés</h2>
<dl>
<dt>{{jsxref("Math.E")}}</dt>
<dd>Nombre d'Euler, la base des logarithmes naturels, environ 2,718.</dd>
<dt>{{jsxref("Math.LN2")}}</dt>
<dd>Logarithme naturel de 2, environ 0,693.</dd>
<dt>{{jsxref("Math.LN10")}}</dt>
<dd>Logarithme naturel de 10, environ 2,302.</dd>
<dt>{{jsxref("Math.LOG2E")}}</dt>
<dd>Logarithme de base 2 de E, environ 1,442.</dd>
<dt>{{jsxref("Math.LOG10E")}}</dt>
<dd>Logarithme de base 10 de E, environ 0,434.</dd>
<dt>{{jsxref("Math.PI")}}</dt>
<dd>Quotient de la circonférence d'un cercle par son diamètre, environ 3,14159.</dd>
<dt>{{jsxref("Math.SQRT1_2")}}</dt>
<dd>Racine carrée de 1/2 ; équivalent de 1 sur la racine carrée de 2, environ 0,707.</dd>
<dt>{{jsxref("Math.SQRT2")}}</dt>
<dd>Racine carrée de 2, environ 1,414.</dd>
</dl>
<h2 id="Méthodes">Méthodes</h2>
<div class="note">Les fonctions trigonométriques (<code>sin()</code>, <code>cos()</code>, <code>tan()</code>, <code>asin()</code>, <code>acos()</code>, <code>atan()</code>, <code>atan2()</code>) acceptent ou retournent des angles en radians.<br>
Pour convertir des degrés en radians, multipliez la valeur en degrés par (<code>Math.PI / 180</code>).<br>
Pour passer des radians en degrés, divisez la valeur en radians par (<code>Math.PI / 180</code>).</div>
<div class="note">La précision des fonctions mathématiques dépend notamment de l'implémentation. Cela signifie que différents navigateurs peuvent fournir des résultats différents. On peut même avoir un même moteur JavaScript qui, sur des architectures et/ou des systèmes d'exploitation différents, fournit des résultats différents.</div>
<dl>
<dt>{{jsxref("Objets_globaux/Math/abs", "Math.abs(x)")}}</dt>
<dd>Retourne la valeur absolue d'un nombre.</dd>
<dt>{{jsxref("Objets_globaux/Math/acos", "Math.acos(x)")}}</dt>
<dd>Retourne l'arc cosinus d'un nombre.</dd>
<dt>{{jsxref("Objets_globaux/Math/acosh", "Math.acosh(x)")}}</dt>
<dd>Retourne l'arc cosinus hyperbolique d'un nombre.</dd>
<dt>{{jsxref("Objets_globaux/Math/asin", "Math.asin(x)")}}</dt>
<dd>Retourne l'arc sinus d'un nombre.</dd>
<dt>{{jsxref("Objets_globaux/Math/asinh", "Math.asinh(x)")}}</dt>
<dd>Retourne l'arc sinus hyperbolique d'un nombre.</dd>
<dt>{{jsxref("Objets_globaux/Math/atan", "Math.atan(x)")}}</dt>
<dd>Retourne l'arc tangente d'un nombre.</dd>
<dt>{{jsxref("Objets_globaux/Math/atanh", "Math.atanh(x)")}}</dt>
<dd>Retourne l'arc tangente hyperbolique d'un nombre</dd>
<dt>{{jsxref("Objets_globaux/Math/atan2", "Math.atan2(y, x)")}}</dt>
<dd>Retourne l'arc tangente du quotient de ses arguments.</dd>
<dt>{{jsxref("Objets_globaux/Math/cbrt", "Math.cbrt(x)")}}</dt>
<dd>Renvoie la racine cubique d'un nombre.</dd>
<dt>{{jsxref("Objets_globaux/Math/ceil", "Math.ceil(x)")}}</dt>
<dd>Retourne le plus petit entier supérieur ou égal à la valeur passée en paramètre.</dd>
<dt>{{jsxref("Objets_globaux/Math/clz32", "Math.clz32(x)")}}</dt>
<dd>Renvoie le nombre de zéros qui préfixent un entier sur 32 bits.</dd>
<dt>{{jsxref("Objets_globaux/Math/cos", "Math.cos(x)")}}</dt>
<dd>Retourne le cosinus d'un nombre.</dd>
<dt>{{jsxref("Objets_globaux/Math/cosh", "Math.cosh(x)")}}</dt>
<dd>Renvoie le cosinus hyperbolique d'un nombre.</dd>
<dt>{{jsxref("Objets_globaux/Math/exp", "Math.exp(x)")}}</dt>
<dd>Renvoie l'exponentielle d'un nombre (soit E<sup>nombre</sup>) avec E la constante d'Euler (2,718...).</dd>
<dt>{{jsxref("Objets_globaux/Math/expm1", "Math.expm1(x)")}}</dt>
<dd>Renvoie le résultat de 1 moins l'exponentielle d'un nombre.</dd>
<dt>{{jsxref("Objets_globaux/Math/floor", "Math.floor(x)")}}</dt>
<dd>Retourne le plus grand entier inférieur ou égal à la valeur passée en paramètre.</dd>
<dt>{{jsxref("Objets_globaux/Math/fround", "Math.fround(x)")}}</dt>
<dd>Renvoie le nombre flottant exprimé sur 32 bits le plus proche de l'argument.</dd>
<dt>{{jsxref("Objets_globaux/Math/hypot", "Math.hypot([x[,y[,…]]])")}}</dt>
<dd>Retourne la racine carré de la somme des carrés des arguments.</dd>
<dt>{{jsxref("Objets_globaux/Math/imul", "Math.imul(x, y)")}}</dt>
<dd>Retourne le résultat de la multiplication d'entiers sur 32 bits.</dd>
<dt>{{jsxref("Objets_globaux/Math/log", "Math.log(x)")}}</dt>
<dd>Retourne le logarithme naturel (log<sub>e</sub>) d'un nombre.</dd>
<dt>{{jsxref("Objets_globaux/Math/log1p", "Math.log1p(x)")}}</dt>
<dd>Retourne le logarithme naturel de 1 + un nombre.</dd>
<dt>{{jsxref("Objets_globaux/Math/log10", "Math.log10(x)")}}</dt>
<dd>Retourne le logarithme en base 10 d'un nombre.</dd>
<dt>{{jsxref("Objets_globaux/Math/log2", "Math.log2(x)")}}</dt>
<dd>Retourne le logarithme en base 2 d'un nombre.</dd>
<dt>{{jsxref("Objets_globaux/Math/max", "Math.max([x[,y[,…]]])")}}</dt>
<dd>Retourne la plus grande valeur d'une liste de nombres.</dd>
<dt>{{jsxref("Objets_globaux/Math/min", "Math.min([x[,y[,…]]])")}}</dt>
<dd>Retourne la plus petite valeur d'une liste de nombres.</dd>
<dt>{{jsxref("Objets_globaux/Math/pow", "Math.pow(x,y)")}}</dt>
<dd>Retourne le calcul de x à la puissance y (x correspond à la base et y à l'exposant).</dd>
<dt>{{jsxref("Objets_globaux/Math/random", "Math.random()")}}</dt>
<dd>Retourne un nombre pseudo-aléatoire compris entre 0 (inclus) et 1 (exclu).</dd>
<dt>{{jsxref("Objets_globaux/Math/round", "Math.round(x)")}}</dt>
<dd>Retourne l'arrondi d'un nombre.</dd>
<dt>{{jsxref("Objets_globaux/Math/sign", "Math.sign(x)")}}</dt>
<dd>Retourne le signe d'un nombre, indiquant s'il est positif, négatif ou égal à zéro.</dd>
<dt>{{jsxref("Objets_globaux/Math/sin", "Math.sin(x)")}}</dt>
<dd>Retourne le sinus d'un nombre.</dd>
<dt>{{jsxref("Objets_globaux/Math/sinh", "Math.sinh(x)")}}</dt>
<dd>Retourne le sinus hyperbolique d'un nombre.</dd>
<dt>{{jsxref("Objets_globaux/Math/sqrt", "Math.sqrt(x)")}}</dt>
<dd>Retourne la racine carrée d'un nombre.</dd>
<dt>{{jsxref("Objets_globaux/Math/tan", "Math.tan(x)")}}</dt>
<dd>Retourne la tangente d'un nombre.</dd>
<dt>{{jsxref("Objets_globaux/Math/tanh", "Math.tanh(x)")}}</dt>
<dd>Retourne la tangente hyperbolique d'un nombre</dd>
<dt><code>Math.toSource()</code> {{Non-standard_inline}}</dt>
<dd>Renvoie la chaîne de caractères <code>"Math"</code>.</dd>
<dt>{{jsxref("Objets_globaux/Math/trunc", "Math.trunc(x)")}}</dt>
<dd>Retourne la partie entière d'un nombre (la partie décimale est retirée).</dd>
</dl>
<h2 id="Spécifications">Spécifications</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Spécification</th>
<th scope="col">État</th>
<th scope="col">Commentaires</th>
</tr>
<tr>
<td>{{SpecName('ES1')}}</td>
<td>{{Spec2('ES1')}}</td>
<td>Définition initiale. Implémentée avec JavaScript 1.1</td>
</tr>
<tr>
<td>{{SpecName('ES5.1', '#sec-15.8', 'Math')}}</td>
<td>{{Spec2('ES5.1')}}</td>
<td></td>
</tr>
<tr>
<td>{{SpecName('ES6', '#sec-math-object', 'Math')}}</td>
<td>{{Spec2('ES6')}}</td>
<td>Nouvelles méthodes ajoutées : {{jsxref("Math.log10()", "log10()")}}, {{jsxref("Math.log2()", "log2()")}}, {{jsxref("Math.log1p()", "log1p()")}}, {{jsxref("Math.expm1()", "expm1()")}}, {{jsxref("Math.cosh()", "cosh()")}}, {{jsxref("Math.sinh()", "sinh()")}}, {{jsxref("Math.tanh()", "tanh()")}}, {{jsxref("Math.acosh()", "acosh()")}}, {{jsxref("Math.asinh()", "asinh()")}}, {{jsxref("Math.atanh()", "atanh()")}}, {{jsxref("Math.hypot()", "hypot()")}}, {{jsxref("Math.trunc()", "trunc()")}}, {{jsxref("Math.sign()", "sign()")}}, {{jsxref("Math.imul()", "imul()")}}, {{jsxref("Math.fround()", "fround()")}}, {{jsxref("Math.cbrt()", "cbrt()")}} et {{jsxref("Math.clz32()", "clz32()")}}.</td>
</tr>
<tr>
<td>{{SpecName('ESDraft', '#sec-math-object', 'Math')}}</td>
<td>{{Spec2('ESDraft')}}</td>
<td></td>
</tr>
</tbody>
</table>
<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
<p class="hidden">Le tableau de compatibilité de cette page a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à envoyer une <em>pull request</em> sur <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</p>
<p>{{Compat("javascript.builtins.Math")}}</p>
<h2 id="Voir_aussi">Voir aussi</h2>
<ul>
<li>{{jsxref("Number")}}</li>
</ul>
|