📜  生成随机整数 javascript (1)

📅  最后修改于: 2023-12-03 14:56:17.289000             🧑  作者: Mango

生成随机整数 JavaScript

在 JavaScript 中,生成随机整数有多种方法,下面将介绍 3 种较为常用的方法。

方法 1:Math.floor() 和 Math.random()

使用 Math.floor() 和 Math.random() 方法可以生成一个 0 到 1 之间的随机小数,我们可以将其乘以一个整数,然后使用 Math.floor() 方法将其向下取整得到一个随机整数。

function getRandomInt(max) {
  return Math.floor(Math.random() * Math.floor(max));
}

// 生成 0 到 9 之间的随机整数
console.log(getRandomInt(10));

上述代码中,getRandomInt(max) 方法需要传一个参数 max,代表要生成的最大值,生成的随机整数将会是 0 到 max-1 之间的整数。该方法返回一个 0 到 max-1 之间的随机整数。

注意:如果不想传入 max 参数,可以在方法中使用默认值,如下所示:

function getRandomInt(max=100) {
  return Math.floor(Math.random() * Math.floor(max));
}
方法 2:直接使用 Math.random()

如果要生成 0 到 1 之间的随机小数已经足够,可以直接使用 Math.random() 方法。

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

// 生成 0 到 1 之间的随机整数
console.log(getRandom());

上述代码中,getRandom() 方法不需要传入参数,返回一个 0 到 1 之间的随机小数。

方法 3:Crypto API

使用 Crypto API 可以生成更加安全的随机数,该 API 提供了 window.crypto.getRandomValues 方法,可以生成一个 Uint32Array 类型的随机数数组。

function getRandomSecure() {
  const randomValues = new Uint32Array(1);
  window.crypto.getRandomValues(randomValues);
  return randomValues[0];
}

// 生成一个安全的随机整数
console.log(getRandomSecure());

上述代码中,getRandomSecure() 方法使用 window.crypto.getRandomValues(randomValues) 方法生成一个 Uint32Array 类型的随机数数组,将随机数数组中的第一个元素作为随机整数返回。

注意:使用 window.crypto.getRandomValues 方法需要使用安全连接(HTTPS 协议或 localhost),否则会报错。此外,使用 Crypto API 可能会影响页面的性能。

以上三种方法均可以用于生成随机整数,具体使用哪种方法可根据情况而定。