前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JS获取UUID及其它随机字符串

JS获取UUID及其它随机字符串

作者头像
码客说
发布2024-01-12 09:29:59
4100
发布2024-01-12 09:29:59
举报
文章被收录于专栏:码客码客

前言

开发过程中我们可能需要一些不重复的数字或字符串,根据使用场景的不同我们可以使用不同的方式。

UUID

基本能保证唯一。

代码语言:javascript
复制
function generateUUID() {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
    var r = Math.random() * 16 | 0,
        v = c === 'x' ? r : (r & 0x3 | 0x8);
    return v.toString(16);
  });
}

测试一下

代码语言:javascript
复制
let mSet = new Set();;
for(let i=0;i<10000;i++){
    mSet.add(generateUUID());
}
console.info(mSet.size);

或者

代码语言:javascript
复制
let arr = [];
for(let i=0;i<10000;i++){
    arr.push(generateUUID());
}
const uniqueArr = [...new Set(arr)];
console.info(uniqueArr.length);

时间戳

不太适用与保证唯一的地方,但是比如页面添加参数来禁用缓存的时候可以使用时间戳。

毫秒

在 JavaScript 中,你可以使用 Date.now() 方法来获取当前的时间戳。

它返回自 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)以来经过的毫秒数。

以下是一个示例:

代码语言:javascript
复制
var timestamp = Date.now();
console.log(timestamp);

这将在控制台输出当前的时间戳。

要获取当前的时间戳(以秒为单位),你可以使用 Math.floor() 函数将毫秒时间戳除以 1000 并向下取整。

下面是一个示例:

代码语言:javascript
复制
var timestampInSeconds = Math.floor(Date.now() / 1000);
console.log(timestampInSeconds);

这将输出当前的时间戳(以秒为单位)到控制台。请注意,Date.now() 返回的是当前的毫秒时间戳,通过除以 1000 并向下取整,可以将其转换为以秒为单位的时间戳。

时间戳+随机字符串

基本也能保证唯一,并且好处在于前8位是按照时间排序的,性能相比于UUID会高一点。

不适用于要保证完全唯一的场景。

代码语言:javascript
复制
function getRandomStr(){
    return Date.now().toString(36)+Math.random().toString(36).substring(2, 10);
}

测试一下

代码语言:javascript
复制
let mSet = new Set();;
for(let i=0;i<10000;i++){
    mSet.add(getRandomStr());
}
console.info(mSet.size);

我这里测试了一万次基本上不会重复。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • UUID
  • 时间戳
    • 毫秒
      • 时间戳+随机字符串
      相关产品与服务
      腾讯云服务器利旧
      云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档