Math.random
Math.random
Math.random()
函数返回一个浮点, 伪随机数在范围[0,1)
,也就是说,从0(包括0)往上,但是不包括1(排除1),然后您可以缩放到所需的范围。实现将初始种子选择到随机数生成算法;它不能被用户选择或重置。他不能被用户选择或重置。
Math.random()
不能提供像密码一样安全的随机数字
语法
Math.random()
返回值
一个浮点型伪随机数字在0(包括0)和1(不包括)之间
示例
请注意, 由于 JavaScript 中的数字是 IEEE 754 浮点数字,具有最近舍入( round-to-nearest-even)的行为, 因此以下函数的范围 (不包括Math.random () 本身) 并不准确。如果选择了非常大的边界 (253或更高), 在极罕见的情况下会计算通常-排除(usually-excluded)的上界。
得到一个大于等于0,小于1之间的随机数
function getRandom() {
return Math.random(
}
得到一个两数之间的随机数
这个例子返回了一个在指定值之间的随机数。这个值比min
大(可能与min
相等), 以及比max
小(但是不等于max
).
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
得到一个两数之间的随机整数
这个例子返回了一个在指定值之间的随机整数。这个值比min大(如果min不是整数,那么下一个整数大于min), 以及比max小(但是不等于max).
function getRandomInt(min, max) {
min = Math.ceil(min
max = Math.floor(max
return Math.floor(Math.random() * (max - min)) + min; //The maximum is exclusive and the minimum is inclusive
}
也许很容易让人想用舍入来完成这个任务,但是这样做会导致你的随机数处于一个不均匀的分布,这可能不符合你的需求
得到一个两数之间的随机整数,包括两个数在内
当getRandomInt()
函数在最小值之上,它将排除最大值. 如果你需要结果包含最小值和最大值,怎么办呢? getRandomIntInclusive()
函数将能完成.
function getRandomIntInclusive(min, max) {
min = Math.ceil(min
max = Math.floor(max
return Math.floor(Math.random() * (max - min + 1)) + min; //The maximum is inclusive and the minimum is inclusive
}
规范
Specification | Status | Comment |
---|---|---|
ECMAScript 1st Edition (ECMA-262) | Standard | Initial definition. JavaScript 1.0 (UNIX Only) / JavaScript 1.1 (All platforms). |
ECMAScript 5.1 (ECMA-262)The definition of 'Math.random' in that specification. | Standard | |
ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Math.random' in that specification. | Standard | |
ECMAScript Latest Draft (ECMA-262)The definition of 'Math.random' in that specification. | Living Standard | |
浏览器兼容性
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |