如何生成随机数_Javascript的Math对象怎么用

JavaScript生成随机数核心是Math.random(),返回[0,1)浮点数;整数范围用Math.floor(Math.random()(max-min+1))+min,小数范围用Math.random()(max-min)+min。

JavaScript 里生成随机数,核心靠 Math.random(),它返回一个大于等于 0、小于 1 的浮点数(如 0.348291...)。想得到指定范围的整数或小数,需要简单换算——不是直接“生成”,而是“调整范围”。

生成 0 到 n 之间的随机整数(含 0 和 n)

Math.floor(Math.random() * (n + 1))。因为 Math.random() 最大接近 1 但不等于 1,乘以 (n + 1) 后最大接近 n + 1,再向下取整就能覆盖 0 到 n 全部整数。

  • Math.floor(Math.random() * 6) → 0~5 的随机整数(常用于模拟骰子)
  • Math.floor(Math.random() * 101) → 0~100 的随机整数

生成 a 到 b 之间的随机整数(含 a 和 b,a

公式是:Math.floor(Math.random() * (b - a + 1)) + a。先算出区间长度(+1 是为了包含两端),缩放随机值,再平移到起始位置。

  • 想要 5~15 的随机整数?写 Math.floor(Math.random() * 11) + 5
  • 注意:如果 a 或 b 是变量,确保它们是数字且 a ,否则结果可能不符合预期

生成 a 到 b 之间的随机小数(含 a,不含 b)

去掉取整即可:Math.random() * (b - a) + a。这是最直接的线性映射。

  • Math.random() * 10 + 20 → 20.0 到 30.0 之间的小数(含 20.0,不含 30.0)
  • 如需保留两位小数,可接 .toFixed(2),但注意它返回字符串;要数字就用 parseFloat(...)+ 转换

Math 对象其他常用方法(配合随机使用)

Math 不只是用来随机,几个高频辅助方法也常一起出现:

  • Math.abs(x):取绝对值,避免负数干扰范围计算
  • Math.round(x):四舍五入(适合中间值取整,但注意 0.5 总向偶数舍入)
  • Math.max(...) / Math.min(...):从多个随机值中找极值,比如生成 10 个随机数后取最大
  • Math.pow(x, n)x ** n:做随机指数变换(如模拟增长分布)