生成随机id
const generateId = () => {
return 'vxth-' + Math.random().toString(36).substr(2, 9);
};
这个 generateId 函数是一个生成随机 ID 字符串的工具函数。它不接受任何参数,并返回一个新的字符串,该字符串可以作为 DOM 元素的唯一标识符。让我们分解这个函数的步骤:
-
Math.random()
:这个方法生成一个介于 0(包含)到 1(不包含)之间的随机浮点数。 -
.toString(36)
:将上述随机数转换成一个基数为 36 的字符串。在 JavaScript 中,.toString() 方法可以接受一个可选的整数参数(介于 2 到 36 之间),该参数表示输出的数值基数。当使用 36 作为基数时,结果字符串包含了从 0-9 到 a-z 的全部字符。 -
.substr(2, 9)
:这个方法取上一步生成的字符串(第一个字符为 ‘0’,第二个字符通常为 ‘.’,因为是从一个小数开始的),从索引 2 开始提取后面的 9 个字符。这样做就忽略了字符串开头的 “0.” 部分。 -
vxth-' + ...
:最后,这个生成的随机字符串前会加上 ‘vxth-’ 前缀。
综合起来,每次调用 generateId 函数都会返回形如 ‘vxth-asd89fdgb’ 的字符串,其中 ‘asd89fdgb’ 是由 Math.random().toString(36).substr(2, 9) 生成的随机部分。由于 Math.random() 生成的是一个几乎肯定是唯一的随机数,这种方式可以生成一个具有合理唯一性的 ID 字符串,适用于需要临时或独特标识符的场景。