跳到主要内容

JavaScript Math对象之random()函数

Math.random() 函数返回一个在 0(包含)和 1(不包含)之间的浮点数,伪随机数。

示例

let randomNumber = Math.random();

console.log(randomNumber);

// 输出:0.16668531572829082

Math.random() 语法

Math.random() 函数的语法是:

Math.random();

random 是一个静态方法,使用 Math 类名来调用。

Math.random() 参数

Math.random() 函数不接受任何参数。

Math.random() 返回值

  • 返回一个在 0(包含)和 1(不包含)之间的浮点数,伪随机数。

示例 1:使用 Math.random()

// 生成 [0, 1) 范围内的随机数
var random_num = Math.random();
console.log(random_num);

输出

0.5856407221615856;

注意: 在上面的程序中,你可能会得到不同的输出,因为 Math.random() 会生成一个随机数。

示例 2:生成两个数字之间的随机数

// 生成 [x, y) 范围内的随机数
function getRandomNum(min, max) {
return Math.random() * (max - min) + min;
}

// 5(包含)和 10(不包含) 范围内的随机数
var random_num = getRandomNum(5, 10);
console.log(random_num);

// 0(包含)和 100(不包含) 范围内的随机数
var random_num = getRandomNum(0, 100);
console.log(random_num);

输出

6.670210050278422;
70.46845725092274;

这里,我们可以看到 Math.random() 产生的随机值被两个数字之差的因子所缩放。

然后加上较小的数字以产生给定范围内的随机数。

示例 3:生成两个数字之间的随机整数

// 生成 [x, y) 范围内的随机整数
// 最大值是不包含的,最小值是包含的
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}

// 5(包含)和 10(不包含) 范围内的随机整数
var random_num = getRandomInt(5, 10);
console.log(random_num);

// 0(包含)和 100(不包含) 范围内的随机整数
var random_num = getRandomInt(0, 100);
console.log(random_num);

输出

6;
46;

首先,我们对最小值使用 Math.ceil() 方法取上整,而对最大值使用 Math.floor() 方法取下整。

这里,我们可以看到 Math.random() 产生的随机值被两个数字之差的因子所缩放。

然后使用 Math.floor() 取下整使其成为一个整数。最后,加上较小的数字以产生给定范围内的随机数。

示例 4:生成两个数字之间的随机整数(包含)

// 生成 [x, y] 范围内的随机整数
// 两个值都包含
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}

// 5 和 10 之间的随机整数
var random_num = getRandomInt(5, 10);
console.log(random_num);

// 0 和 100 之间的随机整数
var random_num = getRandomInt(0, 100);
console.log(random_num);

输出

8;
100;

首先,我们对最小值进行向上取整,而对最大值进行向下取整。

在这种情况下,唯一的区别是在差值上加上一,以便包括最大值。