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
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
|
---
title: Math
slug: Web/JavaScript/Reference/Global_Objects/Math
tags:
- JavaScript
- Math
- Reference
translation_of: Web/JavaScript/Reference/Global_Objects/Math
---
<div>{{JSRef}}</div>
<p><strong>Math</strong> ist ein Standardobjekt, das Eigenschaften und Methoden für mathematische Konstanten und Funktionen besitzt. Es ist kein Funktionsobjekt.</p>
<h2 id="Description" name="Description">Beschreibung</h2>
<p>Im Unterschied zu den anderen globalen Objekten hat <code>Math</code> keinen Konstruktor. Alle Eigenschaften und Methoden von <code>Math</code> sind statisch. Um die Konstante Pi zu erreichen, wird <code>Math.PI</code> genutzt. Die Sinusfunktion wird mit <code>Math.sin(x)</code> ausgeführt, wobei x der Methodenparameter ist. Konstanten sind so präzise wie der Typ <code>number</code> in JavaScript.</p>
<h2 id="Properties" name="Properties">Eigenschaften</h2>
<dl>
<dt>{{jsxref("Math.E")}}</dt>
<dd>Eulersche Zahl und die Basis für den natürlichen Logarithmus (gerundet 2,718).</dd>
</dl>
<dl>
<dt>{{jsxref("Math.LN2")}}</dt>
<dd>Natürlicher Logarithmus von 2 (gerundet 0,693).</dd>
<dt>{{jsxref("Math.LN10")}}</dt>
<dd>Natürlicher Logarithmus von 10 (gerundet 2,303).</dd>
<dt>{{jsxref("Math.LOG2E")}}</dt>
<dd>Logarithmus zur Basis 2 von der Eulerschen Zahl (gerundet 1,443).</dd>
<dt>{{jsxref("Math.LOG10E")}}</dt>
<dd>Logarithmus zur Basis 10 von der Eulerschen Zahl (gerundet 0,434).</dd>
<dt>{{jsxref("Math.PI")}}</dt>
<dd>Kreiszahl Pi, welche als Verhältnis zwischen Kreisumfang und Durchmesser definiert ist (gerundet 3,14159).</dd>
<dt>{{jsxref("Math.SQRT1_2")}}</dt>
<dd>Quadratwurzel aus 1/2 oder 1 geteilt durch die Quadratwurzel von 2 (gerundet 0,707).</dd>
<dt>{{jsxref("Math.SQRT2")}}</dt>
<dd>Quadratwurzel aus 2 (gerundet 1,414).</dd>
</dl>
<h2 id="Methods" name="Methods">Methoden</h2>
<div class="note"><strong>Anmerkung</strong>: Die trigonometrischen Funktionen (<code>sin()</code>, <code>cos()</code>, <code>tan()</code>, <code>asin()</code>, <code>acos()</code>, <code>atan()</code>, <code>atan2()</code>) erwarten Parameter und geben Rückgabewerte im Bogenmaß zurück. Um dieses in das Gradmaß umzurechnen, teilt man durch <code>(Math.PI / 180)</code> und multipliziert das Ergebnis mit der Bogenmaß.</div>
<div class="note"><strong>Anmerkung:</strong> Bei vielen mathematischen Funktionen ist die Präzision implementationsabhängig. Das bedeutet, dass es bei verschiedenen Browsern verschiedene Ergebnisse geben kann. Auch in der gleichen JavaScript-Umgebung auf verschiedenen Betriebssystemen oder Architekturen können Abweichungen entstehen.</div>
<dl>
</dl>
<dl>
<dt>{{jsxref("Global_Objects/Math/abs", "Math.abs(x)")}}</dt>
<dd>Gibt den Betrag einer Zahl zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/acos", "Math.acos(x)")}}</dt>
<dd>Gibt den Arcus Cosinus einer Zahl zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/acosh", "Math.acosh(x)")}}</dt>
<dd>Gibt den Areacosinus Hyperbolicus einer Zahl zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/asin", "Math.asin(x)")}}</dt>
<dd>Gibt den Arcus Sinus einer Zahl zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/asinh", "Math.asinh(x)")}}</dt>
<dd>Gibt den Areasinus Hyperbolicus einer Zahl zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/atan", "Math.atan(x)")}}</dt>
<dd>Gibt den Arcus Tangens einer Zahl zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/atanh", "Math.atanh(x)")}}</dt>
<dd>Gibt den Areatangens Hyperbolicus einer Zahl zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/atan2", "Math.atan2(y, x)")}}</dt>
<dd>Gibt den Arcus Tangens aus dem Quotienten der Argumente zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/cbrt", "Math.cbrt(x)")}}</dt>
<dd>Gibt die Kubikwurzel einer Zahl zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/ceil", "Math.ceil(x)")}}</dt>
<dd>Gibt die kleinste ganze Zahl zurück, die größer oder gleich dem Parameter ist.</dd>
<dt>{{jsxref("Global_Objects/Math/clz32", "Math.clz32(x)")}}</dt>
<dd>Gibt die Anzahl der voranstehenden 0-Bits einer 32-Bit-Repräsentation zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/cos", "Math.cos(x)")}}</dt>
<dd>Gibt den Cosinus einer Zahl zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/cosh", "Math.cosh(x)")}}</dt>
<dd>Gibt den Cosinus Hyperbolicus einer Zahl zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/exp", "Math.exp(x)")}}</dt>
<dd>Gibt E<sup>x</sup> zurück, wobei x der Parameter und E die Eulersche Zahl ist.</dd>
<dt>{{jsxref("Global_Objects/Math/expm1", "Math.expm1(x)")}}</dt>
<dd>Gibt exp(x) - 1 zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/floor", "Math.floor(x)")}}</dt>
<dd>Rundet eine Zahl auf eine ganze Zahl ab.</dd>
<dt>{{jsxref("Global_Objects/Math/fround", "Math.fround(x)")}}</dt>
<dd>Gibt die am nächsten liegende <a href="http://de.wikipedia.org/wiki/Einfache_Genauigkeit">einfache genaue</a> Gleitkommazahl des Parameters zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/hypot", "Math.hypot([x[,y[,…]]])")}}</dt>
<dd>Gibt die Quadratwurzel aus der Summe der quadrierten Parameterwerte zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/imul", "Math.imul(x)")}}</dt>
<dd>Gibt das Ergebnis einer 32-Bit-Ganzzahlmultiplikation zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/log", "Math.log(x)")}}</dt>
<dd>Gibt den natürlichen Logarithmus (log<sub>e</sub> oder ln) einer Zahl zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/log1p", "Math.log1p(x)")}}</dt>
<dd>Gibt den natürlichen Logarithmus (log<sub>e</sub> oder ln) einer mit 1 addierten Zahl zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/log10", "Math.log10(x)")}}</dt>
<dd>Gibt den Logarithmus zur Basis 10 einer Zahl zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/log2", "Math.log2(x)")}}</dt>
<dd>Gibt den Logarithmus zur Basis 2 einer Zahl zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/max", "Math.max([x[,y[,…]]])")}}</dt>
<dd>Gibt die größte von null oder mehr Zahlen zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/min", "Math.min([x[,y[,…]]])")}}</dt>
<dd>Gibt die kleinste von null oder mehr Zahlen zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/pow", "Math.pow(x,y)")}}</dt>
<dd>Gibt die Potenz zweier Zahlen zurück (x<sup>y</sup>).</dd>
<dt>{{jsxref("Global_Objects/Math/random", "Math.random()")}}</dt>
<dd>Gibt eine Pseudozufallszahl zwischen 0 und 1 zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/round", "Math.round(x)")}}</dt>
<dd>Gibt den ganzzahlig gerundeten Wert des Parameters zurück.</dd>
</dl>
<dl>
<dt>{{jsxref("Global_Objects/Math/sign", "Math.sign(x)")}}</dt>
<dd>Gibt das Vorzeichen (positiv, negativ, 0) von x zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/sin", "Math.sin(x)")}}</dt>
<dd>Gibt den Sinus einer Zahl zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/sinh", "Math.sinh(x)")}}</dt>
<dd>Gibt den Sinus Hyperbolicus einer Zahl zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/sqrt", "Math.sqrt(x)")}}</dt>
<dd>Gibt die positive Quadratwurzel einer Zahl zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/tan", "Math.tan(x)")}}</dt>
<dd>Gibt den Tangens einer Zahl zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/tanh", "Math.tanh(x)")}}</dt>
<dd>Gibt den Tangens Hyperbolicus einer Zahl zurück.</dd>
<dt><code>Math.toSource()</code> {{Non-standard_inline() }}</dt>
<dd>Gibt die Zeichenkette <code>"Math"</code> zurück.</dd>
<dt>{{jsxref("Global_Objects/Math/trunc", "Math.trunc(x)")}}</dt>
<dd>Gibt den ganzzahligen Teil der Zahl <code>x</code>, ohne jede Nachkommastellen, zurück.</dd>
</dl>
<h2 id="Das_Math_Objekt_erweitern">Das <code>Math</code> Objekt erweitern</h2>
<p>Wie die meisten der Standard-JavaScript Objekte kann auch das <code>Math</code> Objekt um benutzerdefinierten Eigenschaften und Methoden erweitert werden. Zum Erweitern des <code>Math</code> Objektes wird nicht <code>prototype</code> genutzt. Stattdessen wird <code>Math</code> direkt erweitert.</p>
<pre>Math.propName = propValue;
Math.methodName = methodRef;</pre>
<p>Im folgenden Beispiel wird eine Methode zum <code>Math</code> Objekt hinzugefügt, welche den größten gemeinsamen Teiler von einer Liste von Argumenten ermittelt.</p>
<pre class="brush: js">/* Variadic function -- Returns the greatest common divisor of a list of arguments */
Math.gcd = function () {
if(arguments.length == 2) {
if(arguments[1] == 0) {
return arguments[0];
} else {
return Math.gcd(arguments[1], arguments[0] % arguments[1]);
}
} else if (arguments.length > 2) {
var result = Math.gcd(arguments[0], arguments[1]);
for (var i = 2; i < arguments.length; i++) {
result = Math.gcd(result, arguments[i]);
}
return result;
}
}</pre>
<p>Zum Ausprobieren:</p>
<pre class="brush: js">console.log(Math.gcd(20, 30, 15, 70, 40)); // `5`</pre>
<h2 id="Spezifikationen">Spezifikationen</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Spezifikation</th>
<th scope="col">Status</th>
<th scope="col">Kommentar</th>
</tr>
<tr>
<td>{{SpecName('ES1')}}</td>
<td>{{Spec2('ES1')}}</td>
<td>Initiale Definition. Implementiert in 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>Die neuen Methoden {{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()")}} und {{jsxref("Math.clz32()", "clz32()")}} hinzugefügt.</td>
</tr>
<tr>
<td>{{SpecName('ESDraft', '#sec-math-object', 'Math')}}</td>
<td>{{Spec2('ESDraft')}}</td>
<td> </td>
</tr>
</tbody>
</table>
<h2 id="Browserkompatibilität">Browserkompatibilität</h2>
<p>{{Compat("javascript.builtins.Math")}}</p>
<h2 id="See_also" name="See_also">Siehe auch</h2>
<ul>
<li>{{jsxref("Number")}}</li>
</ul>
|