当前位置:首页 > JavaScript

js实现guid

2026-02-02 05:53:23JavaScript

GUID/UUID 实现方法

在 JavaScript 中生成 GUID(全局唯一标识符)或 UUID(通用唯一标识符)有多种方法。以下是几种常见实现方式:

使用 crypto API(推荐)

现代浏览器支持 crypto.randomUUID() 方法,这是最标准且高效的方式:

const uuid = crypto.randomUUID();
console.log(uuid); // 输出类似 "36b8f84d-df4e-4d49-b662-bcde71a8764f"

手动实现 UUID v4

如果环境不支持 crypto.randomUUID(),可以手动实现符合 RFC 4122 标准的 UUID v4:

js实现guid

function generateUUID() {
    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(generateUUID());

使用第三方库

流行的第三方库如 uuid 提供了更完整的 UUID 支持:

// 安装:npm install uuid
import { v4 as uuidv4 } from 'uuid';
const id = uuidv4();

性能优化版本

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

js实现guid

function fastUUID() {
    const buf = new Uint32Array(4);
    crypto.getRandomValues(buf);
    return `${buf[0].toString(16)}-${buf[1].toString(16).substr(1)}-4${buf[2].toString(16).substr(1)}-${(8 + (buf[3] % 4)).toString(16)}${buf[3].toString(16).substr(1)}-${buf[4].toString(16)}${buf[5].toString(16)}${buf[6].toString(16)}`;
}

注意事项

浏览器兼容性方面需要注意:

  • crypto.randomUUID() 需要 Chrome 92+、Firefox 95+、Safari 15.4+
  • 旧版浏览器需要使用 polyfill 或手动实现

Node.js 环境从 14.17.0 开始也支持 crypto.randomUUID()

安全性考虑:

  • 避免使用 Math.random() 生成关键标识符
  • 密码学安全场景必须使用 crypto.getRandomValues()

标签: jsguid
分享给朋友:

相关文章

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…