Math.random()

Podsumowanie

Zwraca pseudolosową, zmiennoprzecinkową liczbę z przedziału [0, 1) ( jedynka nie należy do przedziału). Podstawą generatora liczb losowych (ang. seed ) jest aktualny czas, tak samo jak w języku Java. Ponieważ random jest statyczną metodą obiektu Math, zawsze odwołujemy się do niej poprzez Math.random(), a nie jak do metody instancji obiektu Math utworzonej przez użytkownika.

Notatka: Math.random() nie zapewnia nie zapewnia kryptograficznie bezpiecznych liczb losowych. Nie używaj ich do niczego związanego z bezpieczeństwem (np. generowanie haseł). Zamiast tego użyj Web Crypto API, a dokładniej: metodę window.crypto.getRandomValues().

Składnia

Math.random()

Parametry

Brak.

Wartość zwracana

Liczba pseudolosowa, zmiennoprzecinkowa zawarta w przedziale [0, 1) (od 0 (włącznie) do 1 (wykluczając 1)).

Przykłady

Zastosowanie Math.random()

Zwraca losową liczbę większą lub równą 0 i mniejszą od 1.

function getRandom() {
  return Math.random();
}

Uzyskanie losowej liczby między dwiema wartościami

Ten przykład zwraca losową liczbę znajdującą się pomiędzy określonymi wartościami. Zwrócona wartość jest większa lub równa min, i jest mniejsza niż max.

function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min)) + min;
}

Uzyskanie losowej liczby między dwiema wartościami z przedziału [min, max] (max włącznie)

function getRandomIntInclusive(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

Wsparcie przeglądarek

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
randomChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support YesSafari Full support YesWebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 1.0nodejs Full support Yes

Legend

Full support  
Full support