📅  最后修改于: 2023-12-03 15:42:24.588000             🧑  作者: Mango
在JavaScript中,有多种方法可以生成随机数。
JavaScript内置了一个Math对象,其中有一个.random()方法可以生成0到1之间的随机数。
let randomNum = Math.random();
如果要生成一个N到M之间的随机数,可以使用如下公式:
let randomNum = Math.floor(Math.random() * (M - N + 1) + N);
例如,生成一个1到6之间的随机数可以这样写:
let randomNum = Math.floor(Math.random() * 6 + 1);
JavaScript中的Date对象也可以用来生成随机数。通过获取当前时间的毫秒数,可以产生一个0到999之间的随机数。
let randomNum = new Date().getMilliseconds();
如果需要生成一个N到M之间的随机数,可以将获取到的随机数除以1000再加上N,然后向下取整。
let randomNum = Math.floor((new Date().getMilliseconds() / 1000) * (M - N + 1) + N);
Web Crypto API提供了一个.getRandomValues()方法,可以生成高强度的随机数。
let array = new Uint32Array(1);
window.crypto.getRandomValues(array);
let randomNum = array[0];
其中array数组的长度可以调整,表示生成多少个32位随机数。这种方法比Math.random()和Date对象生成的随机数更加高强度,无法预测。
参考文献:MDN web docs