Math.random生成的虽然不是真正意义上的随机数,但是在非密码使用场景中,比如在随机颜色、随机图片、字符等场景中,仍然被广泛使用。
Math.random生成一个随机值(生成的值大于等于0小于1)
const x = Math.random()
0 <= x < 1
如果需要x随机生成的值在0和10之间
const x = Math.random() * 10
0 <= x < 10
如果需要x随机生成的值在0和10之间,且必须为整数
const x = Math.floor(Math.random() * 10)
如果需要x随机生成的值在0和n(n>0)之间,且必须为整数
function getRandomVal (number = 1) {
return Math.floor(Math.random() * number)
}
const x = getRandomVal(10)
如果需要x随机生成的值在min和max之间,且必须为整数
function getRandomBetween (min, max) {
return max === undefined ? Math.floor(Math.random() * min) : Math.floor(Math.random()*(max - min + 1)) + min
}
const x = getRandomBetween(6, 10)
随机生成颜色RGB
function randomColor () {
return `#${getRandomBetween(1,255).toString(16)}${getRandomBetween(1,255).toString(16)}${getRandomBetween(1,255).toString(16)}`
}
const color = randomColor()
随机生成单个字符(a-z)
function randomLetter () {
return getRandomBetween(10,35).toString(36)
}
const letter = randomLetter()
随机生成指定数量的字符
function randomLetters (numberOfLetters) {
return [...Array(numberOfLetters)].map(randomLetter).join``
}
const letters = randomLetters()