JavaScript中Math.random()生成随机数的完整指南

作者:异步漫步时间:2026-10-29 08:31:35浏览:636

本文详细解析JavaScript中Math.random()函数的使用方法,涵盖生成指定范围内连续整数随机数的公式推导,以及通过三元运算符、函数参数数组和apply方法实现不连续整数或文本随机选择的技巧,帮助开发者掌握多种随机数应用场景。

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

以上内容即为本文的全部讲解,希望读者能够喜欢。

作者最新文章