当前位置: 首页 > news >正文

JS片段:生成 UUID

Hi,这里是松桑,每天学习一个 JS 片段,涨涨🧀!今天带来的是如何生成 UUID,UUID作为全局唯一标识,使用常见广泛,包括分布式系统、数据库主键、会话标识、消息队列、日志追踪等等。

什么是UUID

UUID 英文全称为 Universally Unique IDentifier,翻译过来就是:通用唯一标识符。它是一个128位的数字,用于唯一标识互联网上的某个对象或实体。

UUID 是一个在空间和时间上都是唯一的标识符,因为 UUID 是固定的大小,并包含一个时间字段,则值可以翻转(公元3400年左右,取决于具体的算法使用)。UUID 可以用于多种目的,从标记开始生命周期极短的物体,以可靠地识别网络中非常持久的对象。

生成UUID源码

下面的所有实现都符合 RFC4122 v4 标准。

直接通过crypto.randomAPI 可直接生成UUID,Crypto 模块方法是标准化统一的,浏览器和Node端 API 相同。以下为源码:

crypto.randomUUID();
// 'c8d87824-1bb4-4046-bc68-c2ffeed14791'
const { randomUUID } = require('crypto');
randomUUID();
// f51b4b4d-f719-47b3-a39d-33cd7eb6528e

上述实现是符合 RFC 4122 v4版本标准的,想要生成其他版本标准的UUID可以使用 uuidjs/uuid 工具库,完全支持 RFC4122版本1、3、4和5的 UUID。它的特点:

  • 跨平台-支持:CommonJS、 ECMAScript 模块和 CDN 构建、NodeJS12 + (LTS 版本)、Chrome,Safari,Firefox,Edge 浏览器、Webpack 和 rollup.js 模块包等

  • 安全-加密强随机值

  • 小-零依赖,小的内存占用,支持 tree shaking

  • CLI-包含 uuid 命令行实用程序

uuid 工具库生成各版本uuid 代码如下:

const { v1: uuidv1, v4: uuidv4, v5: uuidv5 } = require('uuid');uuidv1();
uuidv4();
uuidv5('https://www.w3.org/', uuidv5.URL);

参考链接

RFC 4122 文稿:https://datatracker.ietf.org/doc/html/rfc4122

相关文章:

JS片段:生成 UUID

Hi,这里是松桑,每天学习一个 JS 片段,涨涨🧀!今天带来的是如何生成 UUID,UUID作为全局唯一标识,使用常见广泛,包括分布式系统、数据库主键、会话标识、消息队列、日志追踪等等。 什么…...

小学数学出题器-Word插件-大珩助手

Word大珩助手是一款功能丰富的Office Word插件,旨在提高用户在处理文档时的效率。它具有多种实用的功能,能够帮助用户轻松修改、优化和管理Word文件,从而打造出专业而精美的文档。 【新功能】小学数学出题器 1、实现了难度设定;…...

短剧平台源码:打造个性化娱乐体验的核心功能

在数字化媒体的浪潮中,短剧平台源码扮演着至关重要的角色,它不仅是构建短剧平台的技术基础,更是提供个性化娱乐体验的关键。本文将深入探讨短剧平台源码的核心功能,包括推荐短剧、本周热门/热播、个性化推荐、追剧功能、观看历史、…...

【MySQL】MySQL 图形化界面 - 使用说明(MySQL Workbench)

一、安装软件 Navicat,SQLyog 这些软件都不错,不过都需要收费,当然也有破解版。下面用 MySQL Workbench,它是官方提供的工具。 二、使用操作 这个软件本质是一个客户端,现在要让数据库能够远程登录。不过一般不会远程…...

Shell 编程之免交互

一、Here Document 语法格式&#xff1a; 命令 << 标记 ...... ...... 标记 1.用wc -l的命令统计输入的文字的行数 [rootlocalhost ~]# wc -l <<EOF > aaa > bbb > ccc > EOF 3 备注&#xff1a; 显示行数。 2.整体赋值给变量&#xff0c;通过ech…...

github有趣项目:Verilog在线仿真( DigitalJS+edaplayground)

DigitalJS https://github.com/tilk/digitaljs这个项目是一个用Javascript实现的数字电路模拟器。 它旨在模拟由硬件设计工具合成的电路 像 Yosys&#xff08;这里是 Github 存储库&#xff09;&#xff0c;它有一个配套项目 yosys2digitaljs&#xff0c;它可以转换 Yosys 将文…...

性能测试学习-基本使用-元件组件介绍(二)

jmeter优点是&#xff1a;开源免费&#xff0c;小巧&#xff0c;丰富的学习资料和扩展组件 缺点是&#xff1a;1.不支持IP欺骗&#xff0c;分析和报表能力相对于LR欠缺精确度&#xff08;以分钟为单位&#xff09; 工具用户量分析报表IP欺骗费用体积扩展性Loadrunner多(万)精…...

基于大模型的智慧零售教育科研平台——技术方案

一、概述 1.1背景 随着数字经济的快速发展和全社会数字化水平的升级&#xff0c;人工智能的积极作用越来越凸显&#xff0c;人工智能与各个行业的深度融合已成为促进传统产业转型升级的重要方式之一。ChatGPT的出现掀起了又一波人工智能发展热潮&#xff0c;人工智能行业发展势…...

C# using的几个用途

using 关键字有三个主要用途&#xff1a; 1.using 语句定义一个范围&#xff0c;在此范围的末尾将释放对象&#xff1a; string filePath "example.txt"; string textToWrite "Hello, this is a test message!"; // Use the using statement to ensure …...

MyBatis3.4全集笔记

MyBatis 1. MyBatis 简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code&#xff0c;并且改名为MyBatis 。2013年11月迁移到Github。 iBATIS一词来源于“internet”和“abatis”的组合&#xff0c;是一个基于Ja…...

IDEA一键启动多个微服务

我们在做微服务项目开发的时候&#xff0c;每次刚打开IDEA&#xff0c;就需要把各个服务一个个依次启动&#xff0c;特别是服务比较多时&#xff0c;逐个点击不仅麻烦还费时。下面来说一下如何一键启动多个微服务。 操作步骤 点击Edit Configurations 2.点击“”&#xff0c;…...

【Python3】random.choices 权重随机选取 详解

random.choices是Python 3中random模块中的一个函数&#xff0c;用于从指定的序列中以指定的权重随机选择元素。下面我将对该函数进行详细介绍&#xff0c;并提供一些示例代码和注意事项。 函数签名&#xff1a; random.choices(population, weightsNone, *, cum_weightsNone…...

【面试题-015】Redis的线程模型是什么 为什么速度快

redis面试题 Redis的线程模型是什么 为什么速度快&#xff1f; Redis是一个开源的、高性能的键值对&#xff08;key-value&#xff09;数据库。它之所以速度快&#xff0c;主要得益于以下几个方面的设计&#xff1a; 单线程模型&#xff1a; Redis的操作是单线程的&#xff…...

EasyV开发人员的使用说明书

在可视化大屏项目时&#xff0c;开发人员通常需要承担以下任务&#xff1a; 技术实现&#xff1a;根据设计师提供的设计稿&#xff0c;利用前端技术&#xff08;如HTML、CSS、JavaScript等&#xff09;和后端技术&#xff08;根据具体项目需求&#xff0c;可能是Java、Python、…...

构造列表初始化和构造初始化区别

构造列表初始化和构造初始化在C等编程语言中&#xff0c;是两种不同的初始化类实例成员的方式。以下是它们之间的主要区别&#xff1a; 构造列表初始化&#xff08;初始化列表&#xff09; 定义&#xff1a;初始化列表以一个冒号开始&#xff0c;接着是一个以逗号分隔的数据成…...

Message passing mechanism (消息传递机制)

objc_msgSend 是 Objective-C 运行时系统中的一个核心函数&#xff0c;用于实现消息传递机制。在 Objective-C 中&#xff0c;方法调用实际上是消息传递的过程&#xff0c;当你在代码中调用一个方法时&#xff0c;编译器会将其转换为 objc_msgSend 函数的调用。 objc_msgSend …...

详解 Spark SQL 代码开发之数据读取和保存

一、通用操作 /** 基本语法&#xff1a;1.读取&#xff1a;SparkSession.read[.format("format")[.option("...")]].load("path")2.保存&#xff1a;DataFrame.write[.format("format")[.option("...")]][.mode("Save…...

Pulsar 社区周报 | No.2024-05-30 | BIGO 百页小册《Apache Pulsar 调优指南》

“ 各位热爱 Pulsar 的小伙伴们&#xff0c;Pulsar 社区周报更新啦&#xff01;这里将记录 Pulsar 社区每周的重要更新&#xff0c;每周发布。 ” BIGO 百页小册《Apache Pulsar 调优指南》 Hi&#xff0c;Apache Pulsar 社区的小伙伴们&#xff0c;社区 2024 上半年度的有奖问…...

第二证券股票杠杆:4分钟直线涨停!这一赛道,AH股集体爆发!

今日早盘&#xff0c;A股继续小幅震动收拾&#xff0c;首要股指涨跌互现&#xff0c;两市个股跌多涨少&#xff0c;成交有萎缩的趋势。 盘面上&#xff0c;医药、中字头、旅游、房地产等板块相对活跃&#xff0c;混合实践、玻璃基板、AI手机PC、光刻机等板块跌幅居前。 “中字…...

JavaScript 进阶征途:解锁Function奥秘,深掘Object方法精髓

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;JavaScript 精粹 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; 文章目录 &#x1f235;Function方法 与 函数式编程&#x1f49d;1 call &#x1f49d…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

Rust 开发环境搭建

环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行&#xff1a; rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu ​ 2、Hello World fn main() { println…...

实战三:开发网页端界面完成黑白视频转为彩色视频

​一、需求描述 设计一个简单的视频上色应用&#xff0c;用户可以通过网页界面上传黑白视频&#xff0c;系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观&#xff0c;不需要了解技术细节。 效果图 ​二、实现思路 总体思路&#xff1a; 用户通过Gradio界面上…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合

作者&#xff1a;来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布&#xff0c;Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明&#xff0c;Elastic 作为 …...

Vue3中的computer和watch

computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...

门静脉高压——表现

一、门静脉高压表现 00:01 1. 门静脉构成 00:13 组成结构&#xff1a;由肠系膜上静脉和脾静脉汇合构成&#xff0c;是肝脏血液供应的主要来源。淤血后果&#xff1a;门静脉淤血会同时导致脾静脉和肠系膜上静脉淤血&#xff0c;引发后续系列症状。 2. 脾大和脾功能亢进 00:46 …...