机数方法是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);
}
如果你需要返回实际的true或false值,代码如下。
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));我们用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/,想获取更好的页面浏览效果或者有任何问题请进入博客,同时也可在博主评论区进行留言,让博主为大家答疑解惑~】
*请认真填写需求信息,我们会在24小时内与您取得联系。