JavaScript随机数 - 如何在JS中生成一个随机数

365 阅读6分钟

在使用JavaScript程序时,有时可能需要生成一个随机数。

例如,在开发一个JavaScript游戏时,你可能想生成一个随机数,比如猜数字游戏。

JavaScript有许多内置的方法来处理数字和进行数学计算。其中一个方法是Math.random() 方法。

在这篇文章中,你将学习如何使用Math.random() 方法来检索随机数。

如何在JavaScript中使用数学--Math 对象的介绍

JavaScript有一个内置的静态对象Math ,它允许你进行数学计算和操作。

Math 对象有一些内置的方法,使执行这些操作更加精确。

Math 对象方法的一般语法如下:

Math.methodName(number);

一些最流行的方法是:

  • Math.round()
  • Math.ceil()
  • Math.floor()
  • Math.random()

让我们来看看如何实现这些方法的一些例子。

如果你想把一个数字四舍五入到最接近的整数,使用Math.round() 方法:

console.log(Math.round(6.2)); // 6

console.log(Math.round(6.3)); // 6

console.log(Math.round(6.5)); // 7

console.log(Math.round(6.8)); // 7

如果你想一个数字四舍五入到最接近的整数,使用Math.ceil() 方法:

console.log(Math.ceil(6.2));  // 7

console.log(Math.ceil(6.3));  // 7

console.log(Math.ceil(6.5));  // 7

console.log(Math.ceil(6.8));  // 7

如果你想一个数字四舍五入到它最接近的整数,使用Math.floor() 方法:

console.log(Math.floor(6.2));  // 6

console.log(Math.floor(6.3));  // 6

console.log(Math.floor(6.5));  // 6

console.log(Math.floor(6.8)); // 6

如果你想生成一个随机数,请使用Math.random() 方法:

console.log(Math.random());

// You will not get the same output

//first time running the program:
// 0.4928793139100267 

//second time running the program:
// 0.5420802533292215

// third time running the program:
// 0.5479835477696466

什么是JavaScript中的Math.random() 方法?- 语法分解

Math.random() 方法的语法如下:

Math.random();

该方法不接受任何参数。

默认情况下,该方法返回一个介于01 之间的**随机十进制(或浮点)**数字。

需要注意的是,0 是包容的,而1包容的。

因此,它将返回一个大于或等于0 的值,而总是小于或不等于1

如何在JavaScript中使用Math.random() ,生成一个具有指定的max 限制的随机小数

正如你到目前为止所看到的,在默认情况下,Math.random() 生成的数字是很小的。

如果你想生成一个从0 开始并包括在内的随机小数,并且大于 1 呢?为此,你要指定一个最大的数字。

具体来说,你需要将这个max 的数字与Math.random() 的随机数字相乘。

例如,如果你想生成一个介于010 之间的随机数,你要做以下工作:

console.log(Math.random() * 10);

// You won't get the same output
//9.495628210218175

在上面的例子中,我将max 的数字(10)与Math.random() 的数字相乘,这将作为一个限制。

请记住,在这种情况下,随机数将在010 之间 - 这意味着大于或等于0 ,小于或不等于10

如何使用JavaScript中的Math.random() ,在指定的minmax 范围内生成一个随机小数?

如果你想在你指定的数字范围内生成一个随机的小数,怎么办?

你在上一节看到了如何指定一个max ,但是如果你希望这个范围从0 (这是默认的起始范围)开始呢?要做到这一点,你也可以指定一个min

在两个值(或范围)之间生成小数的一般语法看起来与此类似:

Math.random() * (max - min) + min;

让我们来看看下面的例子:

// specify a minimum - where the range will start
let min = 20.4;

// specify a maximum - where the range will end
let max = 29.8;

我创建了两个变量,minmax - 其中min 将是最小的数字,max 是该范围内最大的数字。

接下来,我使用你前面看到的语法在这个范围内生成一个随机数:

let min = 20.4;
let max = 29.8;

let randomNum = Math.random() * (max - min) + min;

console.log(randomNum);

// You won't get the same output
// 23.309418058783486

这里需要注意的是,min 是包容的,所以随机数将大于或等于20.4 ,而max 不是包容的,所以结果将总是一个小于或不等于29.8 的数字。

如何在JavaScript中使用Math.random() ,生成一个具有指定的max 限制的随机整数

到目前为止,你已经看到了如何生成随机的十进制数字。

也就是说,还有一种方法可以使用Math.random() 来生成随机整数

你将需要把Math.random() 的计算结果传递给你之前看到的Math.floor() 方法。

这方面的一般语法如下:

Math.floor(Math.random());

Math.floor() 方法将把随机的小数四舍五入到最接近的整数(或整数)。

在此基础上,你可以指定一个max 数字。

因此,举例来说,如果你想生成一个介于010 之间的随机数,你可以这样做:

console.log(Math.floor(Math.random() * 10));

// You won't get the same output
// 0

在这个例子中,我把max 的数字(在这个例子中是10 )与Math.random() 的结果相乘,然后把这个计算结果传给Math.floor()

这里需要注意的是,随机数将在0 (含)和10 (不含)之间。因此,这些数字可以大于或等于0 ,小于或不等于10

如何在JavaScript中使用Math.random() ,生成一个具有指定的max 包容限制的随机整数

在上一节的例子中,我生成了一个介于数字0 (包容)和10 (排斥)之间的随机数。

到目前为止,你已经看到,你不能生成一个等于指定的max 的随机数。

如果你想生成一个包括指定的最大值的随机数呢?

解决这个问题的方法是在计算过程中加入1

所以,让我们重温一下上一节的代码:

console.log(Math.floor(Math.random() * 10));

你现在可以这样重写代码:

console.log(Math.floor(Math.random() * 10) + 1);

// You will not get the same output
// 10

这里需要注意的是,这段代码将在1 (不是0 )和10 之间生成一个随机整数,包括10

如何使用JavaScript中的Math.random() ,在指定的minmax 范围内生成一个随机整数

到目前为止,你已经看到了如何生成一个具有你指定的包容性max 的随机整数。

正如你在上面的例子中看到的,使max 的数字包含在内的代码使用了数字1 作为起始数字,而不是0

这就是说,有一种方法可以让你指定一个包容性的数字范围。为此,你需要指定一个minmax

在上一节中,你看到了如何在一个指定的范围内生成一个随机数,代码也是类似的。唯一的变化是,你把结果传给Math.floor() 方法,把小数点四舍五入到最接近的整数。

所以,一般的代码是这样的:

Math.floor(Math.random() * (max - min) + min);

为了使这个范围包括在内,你要做以下工作:

console.log(Math.floor(Math.random() * (max - min + 1)) + min);

因此,要在数字0 (包括) 10 (包括)之间生成一个随机数,你要写如下:

let min = 0;
let max = 10;

console.log(Math.floor(Math.random() * (max - min + 1)) + min);

//You will not get the same output
// 0

结论

这就是你的成果!你现在知道了Math.random() 方法是如何工作的,以及你可以使用它的一些方法。

要学习更多关于JavaScript的知识,请前往freeCodeCamp的JavaScript算法和数据结构认证

这是一个免费的、经过深思熟虑的、结构化的课程,你将在其中进行互动学习。最后,你还将建立5个项目来申请你的认证并巩固你的知识。

谢谢你的阅读!