首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JS获取UUID及其它随机字符串

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

作者头像
码客说
发布于 2024-01-12 01:29:59
发布于 2024-01-12 01:29:59
91504
代码可运行
举报
文章被收录于专栏:码客码客
运行总次数:4
代码可运行

前言

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

UUID

基本能保证唯一。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
let mSet = new Set();;
for(let i=0;i<10000;i++){
    mSet.add(generateUUID());
}
console.info(mSet.size);

或者

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
var timestamp = Date.now();
console.log(timestamp);

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

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

下面是一个示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var timestampInSeconds = Math.floor(Date.now() / 1000);
console.log(timestampInSeconds);

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

时间戳+随机字符串

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function getRandomStr(){
    return Date.now().toString(36)+Math.random().toString(36).substring(2, 10);
}

测试一下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用Postman工具做接口测试(五)——生成随机参数
  我们平时使用最多的接口调试工具就是postman了,比如开发将一个接口给到你,你想看看接口是否正常。最常用的方法就是用postman去调一下。如果通,就写接口测试用例,反之,将开发打一顿吧o(* ̄︶ ̄*)o。
全栈测试开发日记
2023/02/02
3.4K0
使用Postman工具做接口测试(五)——生成随机参数
小程序基础库探究:说说formid生成的实现
熟悉小程序的都知道,模板消息于2020年1月10日下线了,官方推荐用户使用订阅消息。现在已经是1202年了,探讨一下一个已经下线的功能的实现应该问题不大吧。
薛定喵君
2021/02/24
6060
这些JS工具函数够你用到2020年底了
前言 活不多说,自己平时搜集的干货函数奉上。 干货函数 找出数字在数组中下一个相邻的元素 let i = ""; let rr = []; const name = (n, arr1)=>{ let num = Number(n); for (let i = 0; i < arr1.length; i++) { const element = arr1[i]; if (element != num) { rr.push(num
Vam的金豆之路
2021/12/01
2930
有关js函数,方法的一些补充总结
string number boolean undefined 未定义 null 值为空 symbol 表示一个符号,符号类型是唯一的并且是不可修改的
子舒
2022/06/09
9690
JS生成UUID
一、UUID是什么   UUID就是Universal Unique IDentifier的缩写,它是一个128位,16字节的值,并确保在时间和空间上唯一。 它是把硬件地址、时间以及随机数结合在一起,它保证对在同一时空中的所有机器都是唯一的。         通常平台会提供生成UUID的API。UUID按照开放软件基金会 (OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几
庞小明
2018/03/09
15.5K0
js 小技巧,无形装逼
日历 math random 生成 days map 日历 // 创建过去七天的数组 [...Array(7).keys()].map(days => new Date(Date.now() - 86400000 * days)); // 创建未来七天的数组 [...Array(7).keys()].map(days => new Date(Date.now() + 86400000 * days)); 生成随机的ID // 生成长度为11的随机字母数字字符串 Math.random().toStri
Alone88
2019/10/22
6410
30个Javascript知识点总结,总有你不会的!
最近重温了一遍红宝书,发现一些比较好玩的写法,很多东西日常都在用,但是发现还会有不一样的写法,结合一些日常工作中使用的方法,为大家总结一篇日常经常使用可能还不知道的点,希望对你能有所帮助:
Snine
2023/01/07
3900
JavaScrip内置对象
数组任意地方删除或者添加元素 start 开始 deletedCount 删除个数
羊羽shine
2019/08/02
1.2K0
生成随机且不重复的Uid: 方法与实现
Uid(唯一标识符)是用来在系统中唯一标识一个对象或实体的字符串。在开发中,使用随机且不重复的Uid可以用来避免重复数据和安全问题。
曈曈too
2023/02/27
5.1K0
前端开发博客微信群第四周面试题汇总
一周的面试题有点多,希望你能够转发收藏起来,方便自己后面有时间可以更好的回顾备忘,也当做是对我们的一点支持,谢谢!
前端开发博客
2020/11/04
3230
【JS实用技巧篇】03-封装思想
该篇主要是针对初学者,培养编程思想当中的——抽象思维,即能抽取关键信息,聚焦重点,而我们本篇所讲的封装思想便是这种思想的一部分,通常需要经过长期锻炼才能达到根深蒂固的程度,所以需要慢慢理解并加以实践——多敲
好吃懒洋洋
2022/11/15
2.4K0
【JS实用技巧篇】03-封装思想
Web - 面向对象
该文档系统梳理了JavaScript面向对象核心知识,涵盖对象操作、this机制、原型链、继承等核心概念,并深入解析了Math和Date两大内置对象的实用方法。内容结构清晰,示例丰富(如深浅克隆对比、日期格式化等),尤其对数学计算和日期处理的讲解全面实用,适合作为开发者的速查手册或学习笔记。
stark张宇
2025/06/03
1180
「JS小技巧」随机不重复的ID,模板标签替换,XML与字符串互转,快速取整
今天笔者整理了一份自己最近用到的一些小技巧分享给大家,虽然都是基础技术,不过在某些特殊时刻还蛮有用的,不至于加载一堆体积庞大的第三方库,今天笔者用本文归纳一下分享给大家。本篇文章主要包含以下内容:
前端达人
2019/08/09
3.4K0
内置对象
查找文档:学习一个内置对象的使用,只要学会其常用成员的使用即可,我们可以通过查文档学习,可以通过MDN/W3C来查询。 ​ Mozilla 开发者网络(MDN)提供了有关开放网络技术(Open Web)的信息,包括 HTML、CSS 和万维网及 HTML5 应用的 API。 ​ MDN:https://developer.mozilla.org/zh-CN/
星辰_大海
2020/09/30
1.4K0
JavaScript第七节
内置对象有很多,我们主要是记下这些内置对象的用法即可。但是同学们也不可能一下子记住这么多的方法,因此当同学们忘了某个方法该如何使用的时候,可以通过以下方式查看。
用户3461357
2019/08/02
9900
07JavaScript引用类型
Date提供now()方法,可以得到一个从 1970 年1月1日 00:00:00 至当前系统时间的毫秒数值。
Dreamy.TZK
2020/04/10
9070
07JavaScript引用类型
JavaScript——内置对象(Math对象、日期对象)
前面两种对象是JS基础内存,属于ECMAScript,第三种浏览器对象属于我们JS独有的。
岳泽以
2022/10/26
2K0
JavaScript——内置对象(Math对象、日期对象)
JavaScript基础08--内置方法
Date 对象和 Math 对象不一样,Date是一个构造函数,所以使用时需要实例化后才能使用其中具体方法和
软件架构师Michael
2022/08/07
3250
知识点——Java常用API
为了解决String字符串操作导致的内存冗余,提高效率,Java中提供了StringBuffer和StringBuilder来操作字符串,并且提供了很多方法,便于程序员开发。 StringBuffer和StringBuilder中都有char类型可变长数组作为字符串的保存空间。使用到的方法类型和ArrayList类似。
用户7073689
2020/03/18
7270
学会这20+个JavaScript单行代码,可以让你的代码更加骚气
JavaScript不断发展壮大, 因为它是最容易上手的语言之一,因此为市场上的新成为技术怪才打开了大门。(问号脸?)
@超人
2021/07/05
8890
学会这20+个JavaScript单行代码,可以让你的代码更加骚气
相关推荐
使用Postman工具做接口测试(五)——生成随机参数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档