javascript中Math.random()使用详解

 更新时间:2015年04月15日 08:57:40   投稿:hebedich  
Math.random() 这个方法相信大家都知道,是用来生成随机数的。不过一般的参考手册时却没有说明如何用这个方法来生成指定范围内的随机数。这次我就来详细的介绍一下Math.random(),以及如何用它来生成制定范围内的随机数。

Math.random()方法返回大于等于 0 小于 1 的一个随机数。对于某些站点来说,这个方法非常实用,因为可以利用它来随机显示一些名人名言和新闻事件。

1. 在连续整数中取得一个随机数

值 = Math.floor(Math.random() * 可能值的总数 + 第一个可能的值)
例:产生1-10的随机数

复制代码 代码如下:

var rand1 = Math.floor(Math.random() * 10 + 1);

编写产生startNumber至endNumber随机数的函数

复制代码 代码如下:

function selectFrom(startNumber, endNumber) {
    var choice = endNumber - startNumber + 1;
    return Math.floor(Math.random() * choice + startNumber)
}
var rand2 = selectFrom(2,8);//产生2至8的随机数

2. 在不相邻整数中取得一个随机数

2.1 在不相邻的两个整数中取得一个随机数

例:随机产生2或4中的一个数

复制代码 代码如下:

var rand3 = Math.random() < 0.5 ? 2 : 4;

2.2 在不相邻的多个整数中产生一个随机数

结合函数参数数组,可编写在不相邻的多个整数中产生一个随机值的函数

复制代码 代码如下:

function selectFromMess() {
    return arguments[Math.floor(Math.random() * arguments.length)]
}
//随机产生1、6、8中的一个数
var rand4 = selectFromMess(1, 6, 8);
//也可随机产生文本
var randomTxt1 = selectFromMess("安慰奖", "二等奖", "一等奖");

每次要输入这么多参数比较麻烦,可以改写一下函数

复制代码 代码如下:

function selectFromMessArray(arr) {
    return arr[Math.floor(Math.random() * arr.length)]
}
var arrayTxt=["一","二","三","四","五"];
var randTxt2 = selectFromMessArray(arrayTxt);

或者不改变原有方法,可以利用apply()这个方法传递数组参数

复制代码 代码如下:

var randTxt3 = selectFromMess.apply(null,arrayTxt);

关于apply方法的使用可以看https://www.jb51.net/article/42705.htm

以上所述就是本文的全部内容了,希望大家能够喜欢。

相关文章

  • js实现内容显示并使用json传输数据

    js实现内容显示并使用json传输数据

    这篇文章主要为大家详细介绍了js实现内容显示并使用json传输数据的方法,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • 原生JavaScript实现todolist功能

    原生JavaScript实现todolist功能

    本篇文章给大家介绍了通过原生JavaScript实现todolist功能相关知识点,对此有需要的朋友可以学习下。
    2018-03-03
  • 浅谈window对象的scrollBy()方法

    浅谈window对象的scrollBy()方法

    本文给大家介绍的是windows对象中的scrollBy()的定义和使用方法,十分的细致全面,有需要的小伙伴可以参考下。
    2015-07-07
  • JS+WCF实现进度条实时监测数据加载量的方法详解

    JS+WCF实现进度条实时监测数据加载量的方法详解

    这篇文章主要介绍了JS+WCF实现进度条实时监测数据加载量的方法,结合实例形式分析了大量数据导入过程中前台js与后台WCF交互实现实时显示加载进度的相关操作技巧,需要的朋友可以参考下
    2017-12-12
  • JS实现求5的阶乘示例

    JS实现求5的阶乘示例

    这篇文章主要介绍了JS实现求5的阶乘,结合实例形式分析了javascript基于循环及递归等操作实现阶乘运算的相关技巧,需要的朋友可以参考下
    2019-01-01
  • 关于微信小程序中使用wx.getLocation获取当前详细位置并计算距离

    关于微信小程序中使用wx.getLocation获取当前详细位置并计算距离

    这篇文章主要介绍了关于微信小程序中使用wx.getLocation获取当前详细位置并计算距离,wx.getLocation只能够获取经纬度,不能够拿到详细地址,这里使用腾讯地图的api,需要的朋友可以参考下
    2023-04-04
  • javascript变量作用域使用中常见错误总结

    javascript变量作用域使用中常见错误总结

    刚看了一篇文章对js作用域的理解又会上升到一个新的台阶,javascript里变量作用域是个经常让人头痛抓狂的问题,接下来对经常遇到又容易出错的情况进行了简单总结,感兴趣的各位可以参考下哈
    2013-03-03
  • 微信小程序连接服务器展示MQTT数据信息的实现

    微信小程序连接服务器展示MQTT数据信息的实现

    这篇文章主要介绍了微信小程序连接服务器展示MQTT数据信息的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • JavaScript中闭包的详解

    JavaScript中闭包的详解

    本文主要介绍了JavaScript中闭包的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • JavaScript中防抖和节流的原理和区别详解

    JavaScript中防抖和节流的原理和区别详解

    JavaScript 中,防抖和节流是一种用于优化事件处理函数调用频率的技术,防抖和节流的目的都是为了避免频繁地触发事件处理函数,从而减少浏览器和服务器的负担,本文将给大家介绍一下JavaScript中防抖和节流的原理和区别,需要的朋友可以参考下
    2023-09-09

最新评论