Math.random()
能够返回1,对吗?这意味着如果我将它用于在我的数组上获得随机索引,则以下代码可能会失败:
var arr = [ 1, 2, 3 ],
index = Math.floor(Math.random() * arr.length);
// index could be 3?
alert(arr[index]);
有人可以对此有所了解吗?
答案 0 :(得分:8)
不,它从0 包含返回到1 独家
请参阅https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/random
请注意该页面中的警告:
请注意,JavaScript中的数字是 IEEE 754浮点数用 圆形到最近均匀的行为,这些 范围,不包括 Math.random()本身并不精确, 并取决于它的界限 可能在极少数情况下(在 计算中的2个 62 )的顺序 通常排除的上限。
但是,出于这些目的,你应该没事。
答案 1 :(得分:8)
您发布的链接将我带到了一个网址:
返回一个伪随机数 范围[0,1) - 即介于0之间 (包括)和1(独家)。该 随机数发生器来自 当前时间,如在Java中。
“inclusive”表示该值是范围的一部分,而“exclusive”表示该值不是范围的一部分。
因此Math.random()
返回一个从0到小于1的值。
答案 2 :(得分:0)
我很确定
返回的号码的Math.random()
小于1但等于或大于零。
答案 3 :(得分:0)
介于0(含)和1(独占)之间 - 不能为1
你的代码没问题