JavaScript生成随机数和字符串核心是Math.random(),它返回[0,1)浮点数;配合Math.floor可生成指定范围整数,如Math.floor(Math.random()*100)+1得1–100;随机字符串通过字符池循环取索引实现。

JavaScript 生成随机数和随机字符串,核心靠 Math.random(),它返回一个大于等于 0、小于 1 的浮点数。配合 Math 其他方法(如 floor、round、ceil),就能灵活控制范围和类型。
生成指定范围的随机整数
比如要生成 1 到 100 之间的随机整数(含 1 和 100):
-
Math.floor(Math.random() * 100) + 1:先乘 100 得 [0, 100),再向下取整得 0–99,+1 后变成 1–100 - 通用公式:
Math.floor(Math.random() * (max - min + 1)) + min - 注意别用
Math.round(),它会让两端概率变低(比如 round(0.0–0.49)→0,round(0.5–0.99)→1,0 出现概率只有约 50%,1 却有约 50%+)
生成随机字符串(固定长度、可选字符集)
常用做法是定义字符池,再循环随机取字符拼接:
- 基础版(小写字母 + 数字,长度 6):
const chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
let str = '';
for (let i = 0; i < 6; i++) {
str += chars.charAt(Math.floor(Math.random() * chars.length));
} - 更简洁写法(ES6):
Array.from({length: 6}, () => chars[Math.floor(Math.random() * chars.length)]).join('') - 想支持大小写字母+数字+符号?把
chars换成:'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%'
Math 对象常用方法速查
Math 是静态对象,所有方法都直接通过 Math.xxx() 调用,不需实例化:
立即学习“Java免费学习笔记(深入)”;
-
Math.random():唯一不带参数的方法,返回 [0, 1) -
Math.floor(x):向下取整(≤x 的最大整数),适合生成随机整数 -
Math.ceil(x):向上取整(≥x 的最小整数) -
Math.round(x):四舍五入到最近整数(.5 向上舍入) -
Math.max(...arr)/Math.min(...arr):求最大/最小值(支持展开) -
Math.pow(x, y)或x ** y:幂运算 -
Math.abs(x)、Math.sqrt(x)、Math.log(x)等:基础数学函数
基本上就这些。关键记住:Math.random() 是起点,搭配 floor 最稳妥;字符串靠字符池 + 循环取索引;Math 方法全是纯函数,无副作用,用起来很轻量。











