<html>
<script> //獲取指定位數的隨機數 function getRandom(num){ var random = Math.floor((Math.random()+Math.floor(Math.random()*9+1))*Math.pow(10,num-1)); } //調用隨機數函數生成10位數的隨機數 getRandom(10);
</script> </html>
實現思路(文末有代碼過程及運行結果),以獲取10位隨機數爲例:html
一、Math.random()函數能夠得到0到1之間的小數,Math.pow(10,10)函數進行冪運算等價於10的10次方,Math.floor()函數向下取整去除小數位;瀏覽器
二、組合起來則能夠得到一個10位的隨機數:Math.floor(Math.random()*Math.pow(10,10));dom
三、可是,若是Math.randow()的第一位小數位爲0則可能得到的是9位隨機數;函數
四、將Math.randow()加1,排除第一位小數位爲0的狀況,相應的冪運算減一位spa
Math.floor((Math.random()+1))*Math.pow(10,9));調試
如此將得到一個10位的隨機數,可是都將以1開頭;code
五、爲了開頭也能隨機取數,能夠將1替換爲Math.floor(Math.random()*9+1);htm
六、最終的代碼以下所示:blog
Math.floor((Math.random()+Math.floor(Math.random()*9+1))*Math.pow(10,9));ip
如此就能夠得到一個徹底隨機的10位隨機數了;
//獲取隨機數,小數第一位可能爲0
console.log(Math.random());
//獲取10位隨機數,若是小數第一位爲0則只有9位數
console.log(Math.floor(Math.random()*Math.pow(10,10)));
//隨機數+1,解決小數第一位爲0的狀況
//可是會致使隨機數的第一位老是爲1
console.log(Math.floor((Math.random()+1)*Math.pow(10,9)));
//將隨機數+1也改成隨機加上1~9之間的數字,解決第一位老是爲1的問題
console.log(Math.floor((Math.random()+Math.floor(Math.random()*9+1))*Math.pow(10,9)));
Chrome瀏覽器調試運行結果-----------------------------------------------------------------------------
獲取隨機數,小數第一位可能爲0:
0.097574709201919
獲取10位隨機數,若是小數第一位爲0則只有9位數:
623721160
隨機數+1,解決小數第一位爲0的狀況:
可是會致使隨機數的第一位老是爲1:
1242782126
將隨機數+1也改成隨機加上1~9之間的數字,解決第一位老是爲1的問題:
7671051679