Math.random()
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());
程式碼執行效果截圖如下:
可以看到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));
程式碼執行效果截圖如下:
上面程式碼可以返回一個介於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一章節。