Math.random()
- это функция встроенного объекта Math
, которая возвращает псевдослучайное число с плавающей запятой из диапазона от 0 включительно, до 1 не включительно.
Math.random()
У метода нет параметров.
Опубликуем результат в console.
let randomNumber = Math.random()
console.log(randomNumber)
// или просто
console.log(Math.random())
1. Math.random()
генерирует случайные числа на основе алгоритма, который в итоге можно просчитать, поэтому метод не подходит там, где речь идет о безопасности.
2. Разработчик или пользователь не может выбрать алгоритм, который будет использовать метод для генерации рандомного числа.
3. Math.random()
формирует числа похожие на 0.6592126750964376 или 0.4571938784553331. В дальнейшем результат масштабируются до нужного формата и диапазона.
4. Результатом метода может быть ноль, но единица никогда.
5. В сферах связанных с безопасностью рекомендуется использовать Web Cryptography API и его методы getRandomValues()
и generateKey()
.
Для того, чтобы получить случайное число в заданном интервале можно использовать следующую функцию.
function getRandomNumber(min, max) {
return Math.random() * (max - min) + min
}
Получаем целое число от минимума (включительно) до максимума (не включительно)
function getRandomNumber(min, max) {
return Math.floor(Math.random() * (max - min) + min)
}
или
function getRandomNumber(min, max) {
min = Math.ceil(min)
max = Math.floor(max)
return Math.floor(Math.random() * (max - min) + min)
}
ceil()
- округляет в большую сторону, floor()
в меньшую.
Функция учитывает недостатки предыдущих решений и выводит случайные числа от и до включительно для обоих случаев.
function getRandomNumber(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min
}
или
function getRandomNumber(min, max) {
min = Math.ceil(min)
max = Math.floor(max)
return Math.floor(Math.random() * (max - min + 1)) + min
}
или
function getRandomNumber(min, max) {
return Math.round(min - 0.5 + Math.random() * (max - min + 1))
}
round()
- округляет до ближайшего целого.
Math.random()
генерирует псевдослучайное число от 0 до 1 (не включительно). Метод не содержит параметров, а его результаты удобно форматировать, тем самым получая случайные целые или дробные числа в необходимом диапазоне.