当前位置:首页 > JavaScript

js 实现uuid

2026-02-01 03:28:47JavaScript

UUID 的实现方法

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

使用 crypto.randomUUID()

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

js 实现uuid

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

使用 crypto.getRandomValues()

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

js 实现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:

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
分享给朋友:

相关文章

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Promis…

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与响应式…

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document…

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Pa…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Ja…