整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          介紹JavaScript中的隨機數的方法

          機數方法是javaScript中經常使用的一種方法。 例如,需要在屏幕上的一個隨機位置顯示一幅圖像,編寫的小游戲要扔骰子等。javaScript中Math對象的random()方法生成0-1之間的隨機數,它的隨機數種子采用系統時間,因此可以基本保證每次調用random()方法時都會采用不同的偽隨機數序列。下面來對javascript中的各種隨機數方法做一個總結。

          基本的隨機數

          在javaScript中最簡單的使用隨機數的方法是Math.random()方法。我們可以直接在chrome瀏覽器的控制臺中測試一下這個方法,如下圖:

          Math.random()方法總是會返回0-1之間的浮點數。Math.random()方法返回的隨機數可能是0,但是永遠不會是1。

          返回兩個指定數值之間的隨機數(不包含最大值)

          在實際使用中,我們可能需要獲取兩個指定數值之間的隨機數。同樣,我們獲取的這個隨機數可能等于最小值,但是不會等于最大值。

          1、獲取兩個指定數值之間隨機浮點數。

          function getRandomFloat(min, max) {

          return Math.random() * (max - min) + min;

          }

          例如下面是在控制臺中執行該函數得到50到100之間的隨機浮點數的結果。

          2、獲取兩個指定數值之間隨機整數。

          function getRandomInt(min, max) {

          return Math.floor(Math.random() * (max - min)) + min;

          }

          例如下面是在控制臺中執行該函數得到50到100之間的隨機整數的結果。

          返回兩個指定數值之間的隨機數(包含最大值)

          如果需要返回的隨機數可以包含最大值,可以使用下面的函數來實現。

          function getRandomInRange(min, max) {

          return Math.floor(Math.random() * (max - min + 1)) + min;

          }

          拋硬幣(隨機布爾值)

          如果你想使用0和1來代表拋硬幣的結果,代碼類似下面的樣子。

          function coinToss() {

          return Math.floor(Math.random() * 2);

          }

          如果你需要返回實際的truefalse值,代碼如下。

          function coinToss() {

          return (Math.floor(Math.random() * 2) === 0);

          }

          使用Web Cryptography API來生成一組隨機數

          Web Cryptography API是W3C發布的Web加密API(Web Cryptography API)的標準草案。該文檔定義了在Web應用中執行基本加解密操作的JavaScript API,如哈希操作(hash)、簽名生成和驗證(signature generation and verification),以及加密解密等。此外,該文檔還描述了與密鑰管理有關的操作。API的用途覆蓋用戶或服務的認證、文檔或代碼的簽名、通信的機密性與完整性保證等。

          我們可以使用Web Cryptography API來生成一組隨機數。

          var cryptoStor = new Uint16Array(8);

          上面的代碼會生成包含8個16位無符號整數的數組。其它可以使用整數選項有:Int8Array,Uint8Array,int16Array,Int32Array 和 Uint32Array。

          然后使用隨機數來填充數組。

          window.crypto.getRandomValues(cryptoStor);

          JavaScript中Math對象提供了一個random方法, 函數返回一個浮點數,隨機數在范圍從0 到小于1,也就是說,從 0(包括 0)往上,但是不包括 1(排除 1)

          基本使用

          console.log("第一次: ", Math.random()); // 0.11548793236830579
          console.log("第二次: ", Math.random()); // 0.40543646157371227

          方法封裝

          /**
           * 生成一個范圍內的隨機數
           */
          const getRandom = (min, max) => {
            // 首先我們獲取一個[0,1)的浮點數
            const floatRandom = Math.random();
          
            // 然后計算出最大值和最小值之間的范圍, 加1是為了可以等于max
            const difference = max - min + 1;
          
            // 生成[0,difference]之間的隨機數, 向下取整
            const random = Math.floor(difference * floatRandom);
          
            // 返回[min, difference + min] => [min, max]
            const randomWithinRange = random + min;
          
            return randomWithinRange;
          };
          
          console.log(getRandom(7, 9));

          簡寫

          avaScript中數學對象Math抽取隨機數的公式詳解

          我們用JavaScript寫效果的時候經常會用到一些隨機數,比如我們在做隨機點名,或者說我們開年會的時候寫一個隨機的抽獎的效果,這些效果當中都要用到JavaScript抽取隨機數,很多同學在抽取隨機數的時候不好掌握技巧,其實,抽取隨機數非常簡單,只需要我們掌握JavaScript這門語言的Math對象里的抽取隨機數的公式就可以。

          JavaScript中數學對象Math抽取隨機數的公式詳解

          下面是抽取隨機數的公式:

          取0-1之間的隨機小數(取值范圍無限接近于0,無限接近于1):Math.random();

          取x到y之間的隨機數:Math.random()*(y-x)+x;

          例如,取12至29之間的隨機小數(取值范圍無限接近于12,無限接近于29):Math.random()*(29-12)+12;

          取x到y之間的隨機整數(能取到x和y):Math.floor(Math.random()*(y+1-x)+x);

          例如,取12到29之間的任意的隨機整數(能取到12和29):Math.floor(Math.random()*(29+1-12)+12);

          如果還有疑問可以到后盾網論壇進行提問:bbs.houdunwang.com,有專業的老師及時幫你解答哦!

          【本文來自 孫琪崢博客 http://www.sunqizheng.com/,想獲取更好的頁面瀏覽效果或者有任何問題請進入博客,同時也可在博主評論區進行留言,讓博主為大家答疑解惑~】


          主站蜘蛛池模板: 国产精品视频免费一区二区| 久久久久女教师免费一区| 国产精品一区二区三区99| 一本一道波多野结衣AV一区| 国产一在线精品一区在线观看| 国产欧美一区二区精品仙草咪| 亚洲人成人一区二区三区| 国产91一区二区在线播放不卡| 日韩免费一区二区三区| 无码人妻精品一区二区蜜桃 | 无码人妻一区二区三区免费视频| 精品国产a∨无码一区二区三区| 久久99精品一区二区三区| 日本一区二区不卡视频| 中文字幕色AV一区二区三区| 人妻免费一区二区三区最新| 中文字幕在线观看一区二区三区| 无码日韩精品一区二区人妻| 欧洲精品码一区二区三区免费看| 国产精品亚洲一区二区三区| 国产伦精品一区二区三区精品| 日本香蕉一区二区三区| 精品乱码一区内射人妻无码| 免费无码AV一区二区| 国产福利电影一区二区三区久久久久成人精品综合 | 任你躁国语自产一区在| 国产成人无码一区二区三区 | 亚洲av乱码一区二区三区香蕉 | 亚洲性日韩精品一区二区三区| 杨幂AV污网站在线一区二区| 无码精品人妻一区二区三区AV| 亚洲成人一区二区| 国精品无码一区二区三区左线| 久久久久久人妻一区精品| 无码精品国产一区二区三区免费 | 国产福利一区二区三区视频在线| 国产精品夜色一区二区三区 | 男人的天堂亚洲一区二区三区 | 亚洲av无码片区一区二区三区| 亚洲a∨无码一区二区| 综合激情区视频一区视频二区|