Math.random()

admin發表於2018-09-19

random翻譯成漢語有隨機的意思。

恰如其名,Math.random方法可以生成一個隨機數。

返回的隨機數介於0-1之間。

特別說明:返回值不包括1,也就是返回值是大於等於0小於1。

更多Math物件內容參閱JavaScript Math 物件一章節。

語法結構:

[JavaScript] 純文字檢視 複製程式碼
Math.random()

瀏覽器相容:

(1).IE瀏覽器支援此方法。

(2).Edge瀏覽器支援此方法。

(3).谷歌瀏覽器支援此方法。

(4).火狐瀏覽器支援此方法。

(5).opera瀏覽器不支援此方法。

(6).safria瀏覽器支援此方法。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
console.log(Math.random());

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/19/135432soddk2wkvpp5npb2.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

可以看到Math.random方法返回值是介於0-1之間。

當然上面的列印結果不是固定的,因為Math.random是一個隨機方法。

特別說明:返回值可以包含0,但是不包含1。

再分享一個比較常見的Math.random方法應用的程式碼。

在實際應用中,我們需要的隨機數很可能並不是介於0-1之間,而是其他的指定區間。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let getRandomNum=(m,n)=>{
  return parseInt(Math.random()*(n-m)+m);
}
console.log(getRandomNum(20,50));

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/19/135509yw4i49z3gubsk3ct.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上面程式碼可以返回一個介於20-50之間的隨機整數。

實現原理介紹如下:

(1).建立一個箭頭函式,此函式具有兩個引數,用於規定生成隨機數的區間。

(2).Math.random()*(n-m),由於Math.random返回是0-1之間的隨機數,所以Math.random()*(n-m)值最小是0,最大是30(不包括30,因為Math.random返回值不包括1)。

(3).parseInt(Math.random()*(n-m)+m),Math.random()*(n-m)值最小是0,最大是30,那麼Math.random()*(n-m)+m的值就是介於20-50(不包括50)之間,由於取的是整數,外面再套上parseInt方法。

如果想要返回的隨機整數包含50,只要將程式碼稍加修改即可:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let getRandomNum=(m,n)=>{
  return parseInt(Math.random()*(n-m+1)+m);
}
console.log(getRandomNum(20,50));

程式碼中指定位置加1,這樣Math.random()*(n-m+1)的返回值最小是0,最大是值接近31但不等於31。

那麼Math.random()*(n-m+1)+m最小值是20,最大值接近51但不等於51,然後再用parseInt方法取整即可。

相關閱讀:

(1).箭頭函式可以參閱JavaScript 箭頭函式一章節。

(2).parseInt方法可以參閱JavaScript parseInt一章節。