javascript 生成 UUID GUID 浏览器环境 NodeJS环境 纯JavaScript函数
文章目录Intro浏览器控制台NodeJS环境纯JavaScript函数实现Intro后端Java可以调用java.util.UUID.randomUUID() 生成一个随机的UUID。可是前端JavaScript有没有自带的API用于生成UUID/GUID呢?以下分三种情况。仅用于浏览器控制台ConsoleNodeJS开发环境(可以自由使用各类开源的package)任意JS环境,自己封装一个简单
Intro
后端Java可以调用java.util.UUID.randomUUID() 生成一个随机的UUID。
可是前端JavaScript有没有自带的API用于生成UUID/GUID呢?
以下分三种情况。
- 仅用于浏览器控制台Console
Crypto.randomUUID() - NodeJS开发环境(可以自由使用各类开源的package)
mockjsuuid - 任意JS环境,自己封装一个简单的JavaScript函数。
浏览器控制台
var currentUUID = window.crypto.randomUUID();
console.log(currentUUID);
其本质是利用了 Crypto 这个类。
MDN Crypto.randomUUID()
但是要注意:这是一个Web API,它依赖于浏览器环境。
也就是说,你可以在不同种类的浏览器的控制台/Console上自由使用该API来生成UUID。
要有浏览器环境!
注意浏览器兼容情况:只有IE不支持该API(又是IE)。
不过别担心,在2022-06-15以后做前端开发你都不用再担心IE浏览器的兼容性问题了:IE即将停止支持/退役
NodeJS环境
在node环境下开发,有海量的node package可以使用。这些包都可以在 https://www.npmjs.com/ 找到。
官方开源的/个人上传的,都有。比如说我就曾经上传过勇于获取随机的 useragent HTTP请求头的工具包:
https://www.npmjs.com/package/useragent-tool
我们现在的需求是:有一个方法可以返回随机的UUID/GUID。
先在 npmjs 中去找。
我就找到了两个: modejs 和 uuid 。
- mockjs
// npm install mockjs
var Mock = require("mockjs");
var Random = Mock.Random;
var currGuid = Random.guid()
console.log(currGuid);


// npm i uuid
const { v4: uuidv4 } = require('uuid');
console.log(uuidv4());

纯JavaScript函数实现
如果没有现成的轮子,那就自己造一个轮子出来用!
function uuid() {
var s = [];
var hexDigits = "0123456789abcdef";
for (var i = 0; i < 36; i++) {
s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
}
s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
s[8] = s[13] = s[18] = s[23] = "-";
var uuid = s.join("");
return uuid;
}
uuid();

更多推荐

所有评论(0)