最近在重新看koa的时候发现了这样类似的代码:

Math.random().toString(36).substring(7);
//当然也可以写成这样
Math.random().toString(36).slice(2);
//或者利用时间
(new Date()-0).toString(36)

复制到控制台执行,结果:

xkq49o4xet
jd2o8sb6
pqexm4

生成的都是一些随机字符串,带数字和字母,基本上就是常见的token(当然,自己手写一个生成随机字符串的几行代码也没有任何难度,但是这样确实很简洁,a little hack feeling......)

流程:生成[0,1)范围的随机小数,然后转成36进制,其实也就是26个英文字母和10个阿拉伯数字,然后再取几位即可

不过,刚开始看的时候确实有一点懵,过了两分钟才明白其实这可以说生成的不是字符串而是数字罢了