我知道如果你这样做Math.random()
,它会返回一个介于 0(含)和 1(不含)之间的随机数,但是我在哪里可以找到 JS 是如何选择返回这个数字的呢?
MDN 页面不包含较低级别的代码。
根据wikipedia here,有很多方法可以获取随机数,但是JS使用的是哪种方法。
由 JavaScript 引擎供应商选择他们想要使用的随机数生成器。
只要它在区间内产生一个“随机”数字,[0, 1>
它们就会符合ECMA 规范:
15.8.2.14 random()
返回一个带正号的数值,大于或等于 0 但小于 1,随机或伪随机选择,在该范围内近似均匀分布,使用与 实现相关的算法或策略。
资料来源: http:
//www.ecma-international.org/ecma-262/5.1/#sec-15.8.2.14
供应商没有列出他们使用的算法(据我所知),所以除非您想浏览源代码(在可能的情况下),否则您无法找到(无论如何都很容易)。
(如果您询问安全性:请勿使用任一浏览器的内置浏览器,因为它们不适合此目的。)
随机数生成器 math.random() 是从当前时间播种的,就像在 Java 中一样。