📅  最后修改于: 2023-12-03 14:56:17.289000             🧑  作者: Mango
在 JavaScript 中,生成随机整数有多种方法,下面将介绍 3 种较为常用的方法。
使用 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));
}
如果要生成 0 到 1 之间的随机小数已经足够,可以直接使用 Math.random() 方法。
function getRandom() {
return Math.random();
}
// 生成 0 到 1 之间的随机整数
console.log(getRandom());
上述代码中,getRandom() 方法不需要传入参数,返回一个 0 到 1 之间的随机小数。
使用 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 可能会影响页面的性能。
以上三种方法均可以用于生成随机整数,具体使用哪种方法可根据情况而定。