JavaScript中的随机数

特别声明:本站已开启付费阅读,年费会员价 ¥365.00元。如果您喜欢小站的内容,可以点击开通会员进行全站阅读。如果您对付费阅读有任何建议或想法,欢迎发送邮件至: airenliao@gmail.com!(^_^)

在JavaScript中随机性经常都会使用到,但随机性也有许多种不同的类型,以及需要根据不同的应用程序选择不同的随机性。

基础的随机数

JavaScript中有一个内置的Math.random()函数,可以帮你得到任意的随机数,比如:

Math.random(); // =>0.19401081069372594

Math.random()函数经常返回0~1之间的浮点数。从技术上讲,Math.random()返回的数会出现0,但永远不会出现1

因为我们经常要使用Math.random(),所以我们可以将它封装成一个简单的函数:

function getRandom () {
    return Math.random();
}

调用getRandom()函数和使用Math.random()效果等同:

getRandom(); // =>0.8312549368438933

封装的getRandom()函数得到的随机数依旧是在0~1之间的浮点数,但很多时候,需要的随机数是在一个特定的范围之内,比如10~100之内的一个随机整数。

特定范围内的随机数

其实在上面的函数基础上,可以将其功能扩展一下,获取在某一个范围间的随机数(排队最大数和最小数)。实现这个功能,其实不难,但需要一顶点数学知识。

浮点数

function getRandom (min, max) {
    return Math.random() * (max - min ) + min;
}

getRandom(10,100); // => 10.687806629219263

整数

function getRandom (min, max) {
    return Math.floor(Math.random() * (max - min)) + min;
}

getRandom(10,100); // => 41

上面代码扩展获取的特定范围内的随机数,但不包括最大值max和最小值min。但有的时候得到的随机数,还需要包括最大值max和最小值min。实现这样的功能,并不难,只需要稍微改良一下上面的函数:

function getRandomInRange (min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

getRandomInRange(10, 100); // => 63

真假随机

大家可能都玩过这样的一游戏,抛硬币。那么不管你怎么抛,都只有两个答案,一个正面(暂把它称为真,即1),另一个则是反面(也就是假,即0)。这样的游戏,我们也可以通过一个随机函数来帮我们实现:

function coinToss () {
    return Math.floor(Math.random() * 2);
}

coinToss(); // => 0

如果你想得到随机的truefalse值,可以这样做:

func
剩余80%内容付费后可查看
* 请输入阅读码(忘记阅读码?

如需转载,烦请注明出处:https://www.w3cplus.com/javascript/rounding-recipes.html

如果文章中有不对之处,烦请各位大神拍正。如果你觉得这篇文章对你有所帮助,打个赏,让我有更大的动力去创作。(^_^)。看完了?还不过瘾?点击向作者提问!

赏杯咖啡,鼓励他创作更多优质内容!
返回顶部