大部分人用的都是
Math.random()
随机0-1的一个数字,但是这个公司不给用,codecheck不通过,所以就只能替换了。问了问公司群,说可以用时间戳或者Window.crypto.getRandomValues()替换。百度学习了下:
Math.random()等价表达式:
window.crypto.getRandomValues(new Uint8Array(1))[0] * 0.00392
这博客写的挺清楚的,可以参考下:
https://blog.csdn.net/weixin_43166635/article/details/120818798
但是考虑到浏览器的兼容性:
https://developer.mozilla.org/zh-CN/docs/Web/API/Crypto
最后自己写了个方法实现,基于时间戳实现的,测试了下,没问题。
但是要注意一点,因为是时间戳实现,所以如果需要生成一个连续多位随机数的话不能用这个,不然短时间生成的都是同一个随机数
const mathRandom = () => {
return Math.abs(Math.sin(new Date().getTime()));
}