看到一个用JavaScript生成随机字符串的方法:

Math.random().toString(36).substring(2);

其中的toString(36)是什么意思呢?

MDN上说,Number.prototype.toString()有一个可选的参数radix,就是进制

radix:指定要用于数字到字符串的转换的基数(从2到36)。如果未指定 radix 参数,则默认值为 10。

如果转换的基数大于10,则会使用字母来表示大于9的数字,比如基数为16的情况,则使用a到f的字母来表示10到15。

也就是说,如果radix36,就会把数字表示为由0-9, a-z组成的的36进制字符串。

不用管36进制是什么,只要知道,由Math.random产生的数字会被表示成看起来随机的字符串,类似hg7znok52x,就像10表示成二进制是1010一个道理。

这里主要目的是学习toString(),实际上这个随机字符串并不安全,不能用于实际开发中。

标签: JavaScript, toString