前言
开发过程中我们可能需要一些不重复的数字或字符串,根据使用场景的不同我们可以使用不同的方式。
UUID
基本能保证唯一。
1 | function generateUUID() { |
测试一下
1 | let mSet = new Set();; |
或者
1 | let arr = []; |
时间戳
不太适用与保证唯一的地方,但是比如页面添加参数来禁用缓存的时候可以使用时间戳。
毫秒
在 JavaScript 中,你可以使用 Date.now()
方法来获取当前的时间戳。
它返回自 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)以来经过的毫秒数。
以下是一个示例:
1 | var timestamp = Date.now(); |
这将在控制台输出当前的时间戳。
秒
要获取当前的时间戳(以秒为单位),你可以使用 Math.floor()
函数将毫秒时间戳除以 1000 并向下取整。
下面是一个示例:
1 | var timestampInSeconds = Math.floor(Date.now() / 1000); |
这将输出当前的时间戳(以秒为单位)到控制台。请注意,Date.now()
返回的是当前的毫秒时间戳,通过除以 1000 并向下取整,可以将其转换为以秒为单位的时间戳。
时间戳+随机字符串
基本也能保证唯一,并且好处在于前8位是按照时间排序的,性能相比于UUID会高一点。
不适用于要保证完全唯一的场景。
1 | function getRandomStr(){ |
测试一下
1 | let mSet = new Set();; |
我这里测试了一万次基本上不会重复。