当前位置:首页 > JavaScript

js 实现uuid

2026-02-01 03:28:47JavaScript

UUID 的实现方法

在 JavaScript 中生成 UUID(通用唯一标识符)可以通过多种方式实现。以下是几种常见的方法:

使用 crypto.randomUUID()

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

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

使用 crypto.getRandomValues()

如果环境不支持 randomUUID(),可以通过 crypto.getRandomValues() 生成随机字节并转换为 UUID 格式:

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

使用第三方库

许多第三方库如 uuid 提供了跨平台的 UUID 生成功能:

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

时间戳与随机数结合

在不支持 crypto 的环境下,可以通过时间戳和随机数模拟 UUID:

js 实现uuid

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

注意事项

  • 使用 crypto.randomUUID() 是最推荐的方式,因为它符合 RFC 4122 标准且安全性高。
  • 如果需要支持旧版浏览器或 Node.js 环境,第三方库(如 uuid)是更好的选择。
  • 自行实现的随机数方法可能无法保证唯一性和安全性,仅适用于非关键场景。

标签: jsuuid
分享给朋友:

相关文章

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取所有…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js实现同步

js实现同步

同步与异步的概念 在JavaScript中,同步代码会按照顺序执行,每一行代码必须等待上一行代码执行完成后才能运行。异步代码则允许在等待某些操作(如网络请求)完成的同时继续执行其他代码。 实现同步的…