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–100Math.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%+)常用做法是定义字符池,再循环随机取字符拼接:
constchars = 'abcdefghijklmnopqrstuvwxyz0123456789';
let str = '';
for (let i = 0; i < 6; i++) {
str += chars.charAt(Math.floor(Math.random() * chars.length));
}
Array.from({length: 6}, () => chars[Math.floor(Math.random() * chars.length)]).join('')
chars 换成:'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%'
Math 是静态对象,所有方法都直接通过 Math.xxx() 调用,不需实例化:
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 方法全是纯函数,无副作用,用起来很轻量。