Die Math.random()
Funktion gibt eine Pseudozufallszahl in Form einer Gleitkommazahl im Bereich von 0 (inklusive) bis 1 (exklusive) zurück, die dann zur gewünschten Größe skaliert werden kann. Die Zufallszahl wird von der Implementierung bestimmt; sie kann nicht vom Benutzer ausgewählt oder zurückgesetzt werden.
Notiz: Math.random()
stellt keine echten Zufallszahlen bereit. Verwenden Sie sie nicht für etwas, was in Bezug zu Sicherheit steht. Verwenden Sie stattdessen die Web Crypto API, genauer die window.crypto.getRandomValues()
Methode.
Syntax
Math.random()
Rückgabewert
Eine pseudozufällige Gleitkommazahl zwischen 0
(inklusiv) und 1
(exklusiv).
Beispiele
Verwenden von Math.random()
Beachten Sie, dass, weil Zahlen in JavaScript IEEE 754 Gleitkommazahlen sind, mit dem Verhalten zur nächsten geraden Zahl zu runden, die Bereiche für die folgenden Funktionen - mit Ausnahme für Math.random()
selbst - nicht exakt sind.
Wenn extrem große Grenzen (253 oder höher) gewählt werden, ist es in äußerst seltenen Fällen möglich, dass die eigentlich ausgeschlossenen Obergrenzen mit eingerechnet werden.
// Gibt eine Zufallszahl zwischen 0 (inklusive) und 1 (exklusive) zurück function getRandom() { return Math.random(); }
// Gibt eine Zufallszahl zwischen min (inklusive) und max (exklusive) zurück function getRandomArbitrary(min, max) { return Math.random() * (max - min) + min; }
// Gibt eine Zufallszahl zwischen min (inklusive) und max (exklusive) zurück
// Die Verwendung von Math.round() erzeugt keine gleichmäßige Verteilung!
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}
// Gibt eine Zufallszahl zwischen min (inklusive) und max (inklusive) zurück
// Die Verwendung von Math.round() erzeugt keine gleichmäßige Verteilung!
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min +1)) + min;
}
Spezifikationen
Spezifikation | Status | Kommentar |
---|---|---|
ECMAScript 1st Edition (ECMA-262) | Standard | Ausgangsdefinition. JavaScript 1.0 (nur auf UNIX) / JavaScript 1.1 (auf allen Plattformen). |
ECMAScript 5.1 (ECMA-262) Die Definition von 'Math.random' in dieser Spezifikation. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) Die Definition von 'Math.random' in dieser Spezifikation. |
Standard | |
ECMAScript 2017 Draft (ECMA-262) Die Definition von 'Math.random' in dieser Spezifikation. |
Entwurf |
Browserkompatibilität
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) |