当前位置:首页 > JavaScript

js实现guid

2026-03-15 05:37:45JavaScript

生成 GUID/UUID 的方法

在 JavaScript 中,可以使用以下方法生成 GUID(全局唯一标识符)或 UUID(通用唯一标识符):

使用 crypto.randomUUID()

现代浏览器支持 crypto.randomUUID() 方法,可以生成符合 RFC 4122 标准的 UUID v4:

js实现guid

const uuid = crypto.randomUUID();
console.log(uuid); // 输出类似 "1a2b3c4d-5e6f-7g8h-9i0j-1k2l3m4n5o6p"

使用第三方库

如果项目允许使用第三方库,uuid 是一个流行的选择:

js实现guid

import { v4 as uuidv4 } from 'uuid';
const uuid = uuidv4();
console.log(uuid);

自定义实现

如果需要纯 JavaScript 实现,可以使用以下函数:

function generateGuid() {
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
        const r = Math.random() * 16 | 0;
        const v = c === 'x' ? r : (r & 0x3 | 0x8);
        return v.toString(16);
    });
}
console.log(generateGuid());

性能优化版本

对于需要更高性能的场景,可以使用以下优化版本:

function generateGuidFast() {
    return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>
        (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
    );
}
console.log(generateGuidFast());

注意事项

  • crypto.randomUUID() 是首选方法,但需要现代浏览器支持
  • 自定义实现可能不完全符合 RFC 4122 标准
  • 在 Node.js 环境中可以使用 require('crypto').randomUUID()

标签: jsguid
分享给朋友:

相关文章

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…

js 实现拖拽

js 实现拖拽

实现拖拽的基本步骤 在JavaScript中实现拖拽功能需要监听几个关键事件:mousedown、mousemove和mouseup。以下是实现的基本逻辑。 监听目标元素的mousedown事件,记…