1, 生成任意范围的随机数,假设生成数起始位置是startNum , 结束位置是endNum; (startNum ~ endNum). 因为Math.random() 方法只生成换成(0~1) 之间的随机数,所以,(startNum ~ endNum)要向(0~1)进行转换。 startNum +(0 ~ endNum-startNum), 后面的括号中有0了, 已经进了一步了,那怎么得到1? 任何数除以它本身都得1, 0除以任何数都得0 , 后面的括号中都除以(endNUm-startNum), 然后再在外面乘以 (endNUm-startNum); startNum +(0 ~ 1)*endNum-startNum; 这时得到的是小数,Math.round/parseInt 都可以进行取整。
function getRandomNum(startNum, endNum){ return Math.round(startNum + Math.random() *(endNum -startNum)); }
2, 生成一个随机颜色; 颜色用16进制表示, 那就生成16进制内的任意一随机数,0Xfffff 表示16进制内的最大数, Math.random() * 0Xffffff 就是返回16 进制内的任意一个数,不过它是一个10进制的数, 当然不要忘记取整(下面的<<0 表示取整),还要把它转换成16 进制。
function getcolor(){ return "#" +(Math.random()*0Xffffff<<0).toString(16); // 在js中,任何算术计算都转换成10进制进行计算。 }
时间: 2024-10-23 19:54:59